Bonjour,
Je souhaite lire des éléments dans un document texte formaté comme ceci :
nombre#
txt txt txt
...(0 ou plusieurs lignes)
txt txt#
J'utilise donc la fonction sscanf, très pratique, sauf qu'elle ne fonctionne pas :
<hr size="2" width="100%">$fd = fopen ("txt.txt", "r");
$i=0;
while (!feof ($fd)) {
$buffer = fgets($fd, 4096);
if (sscanf($buffer,"%d#",$buf1)) {
$id = $buf1;
}
else if (sscanf($buffer,"%[^#]#",$buf2)) {
$txt= $txt."$buf2";
if ($i !=0) echo "UPDATE `db` SET `txt` = '$txt' WHERE `id` = '$id' LIMIT 1;
";
$id = NULL;
$txt = NULL;
}
else { if ($id !NULL) $txt $txt."$buffer";
}
$i++;
}
<hr size="2" width="100%">Le premier if fonctionne correctement, mais le second est vérifié à tout les coups, même si la ligne ne termine pas par # comme indiqué, et je n'arrive pas a comprendre pourquoi c'est ça qui fait tout bloquer.
Voici un exemple du contenu de mon document texte :
123#
du texte, du texte !
texte texte#
456#
blablabla#
789#
dksxjhisj
sikjfkj#
En gros pour chaque groupe chiffre/texte je souhaite créer une requête mysql du type "UPDATE `db` SET `txt` '$txt' WHERE `id` '$id'" j'ai donc besoin de récuperer le numéro du groupe (ca j'y arrive, premier if) et j'ai aussi besoin de rassembler en un bloc les textes qui prennent plusieurs lignes (deuxième et troisième if sachant que le deuxième me fait tout planter car il retourne quoi qu'il arrive vrais).