IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Recherche de variables dans un texte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 92
    Par défaut Recherche de variables dans un texte
    Bonjour,
    Je cherche a récuperer des variables dans un texte que je colle dans mon textearea.
    Voici mon code bien basique mais j'ai un soucis
    Je rentre ce texte:

    Tour de Combat: 10
    Canon Laser: 1.000
    Grand Canon Laser: 10
    Rayon Tracteur: 30
    Lanceur de Missiles: 5
    Satellite à Ions: 30
    Batterie Electromagnétique: 30
    Canon à Plasma: 30
    Silos à Missiles HEM: 856

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head><title>Simulateur de Combats Spatiaux</title>
    	<link rel="stylesheet" media="screen" type="text/css" title="design3" href="Css2.css" />
    	</head>
    	<body>
    		<table>
    		<tr>
    		<td>
    		<form name="formulaire" method="post" action="testons.php">
    		<p>Défenseur <br/>
    		Collez ici votre Rapport d'Espionnage</p>		
    		<textarea name="formulaire" id="CadreFormulaire" rows="10" cols="40">
    		</textarea><br/><br/>
    		<input type="submit" name="valider" value="Envoyer le Rapport"/>
    		</form>
    		</td>
    		</tr>
    		</table>
    	</body>
    <?php
    	if(isset($_POST['valider'])){ 
    	$chaine_form = $_POST['formulaire'];
    	$array_chaine = explode(': ', $chaine_form);
    	print_r($array_chaine);
    	echo $array_chaine[1]  . '<br/>';
     
     
    }
    ?>
    Mon echo me renvoi :
    10 Canon Laser alors qu'il devrait me renvoyer Tour de Combat 10.
    De plus, je souhaiterai que le chiffre et son libellé soit séparé dans le tableau
    Merci d'avance !

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    tu fois faire d'abord un explode par ligne \n
    ensuite tu fait un explode par : et tu supprime les espaces inutiles.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 92
    Par défaut
    Voila, en optimisant le print_r ce que j'ai:
    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
    Array
    (
        [0] => Tour de Combat
        [1] => 10
    Canon Laser
        [2] => 1.000
    Grand Canon Laser
        [3] => 10
    Rayon Tracteur
        [4] => 30
    Lanceur de Missiles
        [5] => 5
    Satellite à Ions
        [6] => 30
    Batterie Electromagnétique
        [7] => 30
    Canon à Plasma
        [8] => 30
    Silos à Missiles HEM
        [9] => 856
     
    )
    La on voit bien le décalage qui me chamboule tout :s
    Silvouplait pouvez vous m'aider en respectant le code que j'ai mis et en évitant les trucs trop trop compliqués

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    oui c'est normal, tu a dit de séparer par les points, donc il prend les chaines comprisent entre les points, ca donne :

    Tour de Combat
    :
    10 Canon Laser
    :
    1.000 Grand Canon Laser
    :
    10 Rayon Tracteur:....


    Lit mon message plus haut, il faut d'abord séparer par les lignes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 92
    Par défaut
    Ok j'avais pas vu ^^
    Oui voila je cherchai a séparer les lignes mais je savais pas quelque commande mettre dans le explode.
    Je test mais sa me met toujours la même chose :s.
    Voici le code maintenant:
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head><title>Simulateur de Combats Spatiaux</title>
    	<link rel="stylesheet" media="screen" type="text/css" title="design3" href="Css2.css" />
    	</head>
    	<body>
    		<table>
    		<tr>
    		<td>
    		<form name="formulaire" method="post" action="testons.php">
    		<p>Défenseur <br/>
    		Collez ici votre Rapport d'Espionnage</p>		
    		<textarea name="formulaire" id="CadreFormulaire" rows="10" cols="40">
    		</textarea><br/><br/>
    		<input type="submit" name="valider" value="Envoyer le Rapport"/>
    		</form>
    		</td>
    		</tr>
    		</table>
    	</body>
    <?php
    	if(isset($_POST['valider'])){ 
    	$chaine_form = $_POST['formulaire'];
    	$array_chaine = explode('\n', $chaine_form);
    	$array_chaine = explode(':', $chaine_form);
    	echo '<pre>';
    	print_r($array_chaine);
    	echo '</pre>';
    	echo $array_chaine[1]  . '<br/>';
     
     
    }
    ?>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 92
    Par défaut
    J'arrive toujours a la bourre ...
    Ok je test sa maintenant micetf

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 92
    Par défaut
    Cela fonctionne, merci micetf . Maintenant j'ai une autre question, j'arrive a sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Array
    (
        [0] => Tour de Combat: 10
        [1] => Canon Laser: 1.000
        [2] => Grand Canon Laser: 10
        [3] => Rayon Tracteur: 30
        [4] => Lanceur de Missiles: 5
        [5] => Satellite à Ions: 30
        [6] => Batterie Electromagnétique: 30
        [7] => Canon à Plasma: 30
        [8] => Silos à Missiles HEM: 856		
    )
    Comment puis-je faire pour séparer le chiffe du libellé? Pour obtenir par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [0] Tour de Combat => 10
    Peut-etre faut-il que je modifie tout ...

  8. #8
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$array_chaine = explode("\r\n", $chaine_form);
    	echo $array_chaine[0]  . '<br/>';
    Fred

Discussions similaires

  1. [Batch] Recherche une variable dans texte formaté
    Par canorra dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 27/06/2011, 11h22
  2. capturer une variable dans un [texte de saisie]
    Par ouessant dans le forum Flash
    Réponses: 3
    Dernier message: 10/11/2007, 21h45
  3. Réponses: 5
    Dernier message: 09/11/2007, 08h32
  4. [RegEx] Recherche de mots dans un texte
    Par Dirty Harry dans le forum Langage
    Réponses: 3
    Dernier message: 15/01/2007, 18h29
  5. Rechercher un mot dans un texte
    Par BernardT dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/12/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo