Okmerci a toi serieusement :p
Je suis désolé je m'était peut-etre pas bien exprimé :s
Par contre juste un question, si je veux mettre ses données que j'ai récuperé dans un tableau je fait comment ?
$Variables[1] ? (exemple)
Okmerci a toi serieusement :p
Je suis désolé je m'était peut-etre pas bien exprimé :s
Par contre juste un question, si je veux mettre ses données que j'ai récuperé dans un tableau je fait comment ?
$Variables[1] ? (exemple)
Bon, en espérant que tu arriveras à t'en sortir avec ça :
et quelques exemples d'utilisation :
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 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[ strtolower( trim( $var ) ) ] = trim( $val ); } return $out; } 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; }
Amuse toi bien !
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 /* exemple d'utilisation de la fonction recupVariables en cherchant plusieurs lignes $txt contient ton rapport de combat. */ $tabRecherches = array( 'technologie hyperespace' , 'satellite à ions' ); $a = recupVariables( $txt , $tabRecherches ); echo $a['satellite à ions'] . '<br /><br />'; /* exemple d'utilisation de la fonction recupVariables avec une seule ligne */ $caserne = recupVariables( $txt , 'caserne militaire' ); echo $caserne . '<br /><br />'; /* exemple d'utilisation de la fonction recupVaisseau */ $tab = recupVaisseau( $txt ); foreach( $tab as $vaisseau ){ echo 'Nom : ' . $vaisseau->nom . '<br />'; echo 'Nombre : ' . $vaisseau->nombre . '<br />'; echo 'puissance d\'attaque du bousin : ' . $vaisseau->caracteristiques['Attaque'] . '<br />'; }![]()
En fait je suis un peu perdu je modifie quoi mtn ?![]()
Bon je quadruple post mais voila j'ai fini : c'est sa ? petit bidon peut tu tester car sa ne marche pas ..
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[ strtolower( 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/>'; } } ?>
Alors voila:
2 soucis je recois plusieurs messages d'erreur:
"Notice: Undefined index: Tour de Combat in C:\Program Files\wamp\www\test.php\Complexe.php on line 37"
"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"
La fonction récupVariables renvoie un tableau dont les index sont toujours écrits en minuscules. Si tu préfères garder la casse originale, il suffit de retirer la fonction strtolower et les parenthèses correspondantes (ligne 30 dans le code que tu as reposté) :
devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part $out[ strtolower( trim( $var ) ) ] = trim( $val );
Quant à la deuxième erreur, je vois pas trop. Les rapports que tu as posté étaient complets ? Dans le cas contraire, poste un rapport complet histoire de voir quels peuvent être les cas particuliers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $out[ trim( $var ) ] = trim( $val );
trés bien, cela fonctionne pour la tour de combat,
mais il me reste ces 3 erreurs :
Le rapport que je poste est celui au dessus:
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
Bonjour, je suis toujours avec le même soucis.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager