Bonjour,
J'ai reçu l'aide d'un passioné du forum pour construire cette fonction.
J'en explique rapidement l'utilité, elle permet de récuperer certaines variables dans un texte collé.
Le problème c'est que j'ai quelques messages d'erreurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<html>
	<head><title>Simulateur de Combats Spatiaux</title></head>
	<body>
	<FONT FACE="tahoma">
	<CENTER>
		<form name="formulaire" method="post" action="Complexe.php"
		<CENTER><FONT COLOR="RED" SIZE=+2><B><U>Défenseur</COLOR="RED"></FONT COLOR="RED" SIZE=+2></B></U><br/><br/></CENTER>
		<FONT SIZE=+1><B><U>Collez ici votre Rapport d'Espionnage</FONT SIZE=+1></B></U><br/><br/>		
		<textarea name="formulaire" id="CadreFormulaire" rows="10" cols="40">
		</textarea><br/><br/>
		<input type="submit" name="valider" value="Envoyer"/>
		</form>
	</CENTER>
	<FONT FACE="tahoma">
	<?php
	if(isset($_POST['valider'])){ 
 
function recupVariables( $chaine , $data ){
	//création du masque de sélection des lignes à traiter	
	if( is_array( $data ) ) $mask = '`^(' . implode( '|' , $data ) . ')`i';
	else $mask = '`^(' . $data . ')`i';
	// on transforme la chaine d'entrée en tableau
	$tabOriginal = explode( "\n" , $chaine );
	// sélection des lignes intéressantes du tableau 	
	$tab = preg_grep( $mask , $tabOriginal );
	$out = array();	
	foreach( $tab as $ligne ){
		list( $var , $val ) = explode( ':' , $ligne );
		if( !is_array( $data ) ) return trim( $val );
		$out[  trim( $var ) ] = trim( $val );
	}
	return $out;
}
$tabRecherches = array( 'Tour de Combat' , 'Canon Laser' , 'Grand Canon Laser' , 'Rayon Tracteur' , 'Lanceur de Missiles' , 'Satellite à Ions' , 'Batterie Electromagnétique' , 'Canon à Plasma' , 'Canon Electromagnétique' ,  'Silos à Missiles HEM' , 'Complexe de Défense Orbital' , 'Missile d\'Interception Intelligent' , 'Technologie Amélioration de la Coque' , 'Technologie Amélioration de l\'Armement' , 'Technologie Bouclier de Protection' );
$Défenses = recupVariables( $_POST['formulaire'] , $tabRecherches );
 
echo $Défenses['Tour de Combat'] . '<br /><br />';
 
function recupVaisseau( $chaine ){
	//comme dans la fonction recupVariables, on transforme la chaine d'entrée en tableau	
	$tabOriginal = explode( "\n" , $chaine );
	//on sélectionne toutes les lignes contenant des parenthèses (à priori VAISSEAU( NOMBRE ) si j'ai bien capté)
	$listeVaisseaux = preg_grep( '`\(`' , $tabOriginal );
	$out = array();	
	foreach( $listeVaisseaux as $key=>$val ){
		//création d'un nouvel objet de données qui représentera le vaisseau		
		$vaisseau = new stdClass();
 
		// regex permettant de d'identifier le nom du vaisseau et le nombre	
		preg_match( '`^(?P<nom>.+?)\s*\(\s*(?P<nombre>\d+?)\s*\)$`' , $val , $t );
		$vaisseau->nom = trim( $t['nom'] );
		$vaisseau->nombre = trim( $t['nombre'] );
		$vaisseau->caracteristiques = array();		
		$k = 0;
		while( $tabOriginal[ $key + (++$k) ] != '' ){
			if( strpos( $tabOriginal[ $key + $k ] , ':' ) == true ){
				list( $var , $val ) = explode( ':' , $tabOriginal[ $key + $k ] );
				$vaisseau->caracteristiques[ trim( $var ) ] = trim( $val );
			}
			else $vaisseau->caracteristiques[ trim( $tabOriginal[ $key + $k ] ) ] = 1;
		}
		$out[] = $vaisseau;
	}
	return $out;
}
		$tab = recupVaisseau( $_POST['formulaire'] );
	foreach( $tab as $vaisseau ){
		echo 'Nom : ' . $vaisseau->nom . '<br />';
		echo 'Nombre : ' . $vaisseau->nombre . '<br />';
		echo 'Attaque : ' . $vaisseau->caracteristiques['Attaque'] . '<br />';
		echo 'Bouclier : ' . $vaisseau->caracteristiques['Bouclier'] . '<br/>';
		echo 'Coque : ' . $vaisseau->caracteristiques['Coque'] . '<br/>';
}
 
}
?>
Les messages sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Notice: Undefined index: nom in C:\Program Files\wamp\www\test.php\Complexe.php on line 51
 
Notice: Undefined index: nombre in C:\Program Files\wamp\www\test.php\Complexe.php on line 52
 
Notice: Undefined offset: 125 in C:\Program Files\wamp\www\test.php\Complexe.php on line 55
Je remercie Petit Bidon pour le travail qu'il a fourni, mais j'ai préféré poster dans cette section pour bénéficier d'une aide un peu plus rapide car je comprend que petitbidon n'a pas que sa a faire !
Je vous remercie d'avance