ceeno
Messages postés34Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention 1 juillet 2007
-
17 déc. 2005 à 12:14
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
18 déc. 2005 à 11:05
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.
ceeno
Messages postés34Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention 1 juillet 2007 18 déc. 2005 à 10:51
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).