Recherche d'éléments : fonction ssanf

ceeno Messages postés 34 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 1 juillet 2007 - 17 déc. 2005 à 12:14
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 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.

Par avance merci de toute réponse !

3 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 déc. 2005 à 09:58
Salut,
je ne vois pas quand tu dois ajouter tes #...

Explique mieux...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
ceeno Messages postés 34 Date d'inscription vendredi 25 octobre 2002 Statut Membre Derniè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).
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 déc. 2005 à 11:05
Salut,
t'as qu'a utiliser un explode...



explode('#', $var)

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
Rejoignez-nous