[PHP] Extraction de variable dans un texte

Salut a tous :hello:
Je lit un fichier ligne par ligne. Il y a certaines lignes qui m’interresse, elle sont de la forme:

:tag=valeur:tag2=valeur2:tag3=valeur3

J’aimerais savoir si il y a une fonction en php qui pourrait facilement me créér les variables tag , tag2 et tag3 initialisé au valeurs valeur valeur2 valeur3 respectivement ?
Je sais quand Bash il y a expect, mais en php ?

Cordialement

avec des split().

http://fr2.php.net/manual/fr/function.split.php

J’avais utilisé split et fait ca:


/* Ligne contenant :tag=val */
     if($tag_val_ligne){

        /* array tag=val */
        $tags=explode(":",$ligne);

        for($j=0;$j<sizeof($tags);$j++){

           if(ereg("n=(.*)",$tags[$j])) $network=substr($tags[$j],2);
           if(ereg("m=(.*)",$tags[$j])) $netmask=substr($tags[$j],2);

        }
     }

Mais je suis obliger pour chaque tag d ajouter la ligne if(ereg("ce_tag…
Il est pas possible de faire quelquechose de plus souple?

genre http://fr3.php.net/manual/fr/function.parse-str.php ?

Sinon :

$tags = explode( ':', $line );

$tags_val = array();
foreach ( $tags as $t )
  if ( ($i = strpos($t, '=' ) ) > 0 )
     $tags_val[substr($t, 0, $i )] = substr($t, $i+1);  
var_dump($tags_val);

A noter qu’il faut faire gaffe au cas où trim(substr($t, 0, $i )) == ‘’. s

EDIT: Je suis bete c’est du au fait que jutilise deja la variable i d’ou la boucle infinie :riva:

MErci beaucoup.

J’ai mis $i parce que le clavier de ma copine n’est pas programmer-friendly typiquement je foutrai $tags_equals.

mais j’ai pas compris a koi sert le var_dump :confused:

C’est possible si j’ai net=2 qu’apres si je fait echo $net il affiche 2 ?

le var_dump c’est juste pour t’afficher le résutat et corriger mon script :slight_smile:

et tu auras remarqué que ça stocke tout dans un tableau avec clef =>valeur.

Oui :wink:

tags_val[n]=valeur_de_n

:jap: