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
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
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
et tu auras remarqué que ça stocke tout dans un tableau avec clef =>valeur.