cs_Godson
Messages postés7Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention28 juin 2006
-
1 août 2005 à 12:04
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 2008
-
1 août 2005 à 15:37
Bonjour,
Voila je dois réalisé un parseur sur fichier que voici:
Liste_TOPO.txt
<contributeur class = "contributeur">
<nom>admin<nom>
<liste>
<toponyme class = "toponyme">
<nom>MONT AAST</nom>
<ville>AAST</ville>
64001
</toponyme>
<toponyme class = "toponyme">
<nom>Calamitry</nom>
<ville>Mitry</ville>
94001
</toponyme>
</liste>
</contributeur>
Or j'ai commencé par utilisé fread pour voir ce que cela me renvoyait j'ai donc créer ce fichier:
test.php
<html>
Yo loudboy
<?
$fp = fopen("Parseur/Liste_TOPO.txt", "r") or die("Fichier introuvable. L'analyse a ete suspendue");
while ($fdata = fread($fp, filesize ("Parseur/Liste_TOPO.txt"))){
echo $fdata;
}
?>
</html>
Après interprétation j'obtiens en sortie HTML:
[resultat]Yo loudboy
admin MONT AAST AAST 64001 Calamitry Mitry 94001/resultat
J'aimerais savoir pour quelle raison les balises sont ignorés.
En fait j'aimerais avoir une explication sur le fonctionnement de fread dans ce cas précis.
En effet mon objectif est de pouvoir par exemple de récupérer toutes les infos ou de ne récupérer que les nom ( ou les ville, ou encore les code insee).
Ainsi je saurais si je dois créer mon propre parseur, ou implémenter un existant ( dont l'existence fait peut de doute :wink: ).
Merci d'avance.
PS:
c'est la même chose pour fgets et fgetc.
Les balises sont toujours ignorées.
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 1 août 2005 à 13:14
Salut!
Oui, les balises ( même s'il ne s'agit pas de balises HTML valides ) ne sont pas affichées...
Avec fgets, fread & co, tu récupère ce que tu veux dans une variable et tu parse ensuite..
Petite remarque au passage:
while ($fdata = fread($fp, filesize ("Parseur/Liste_TOPO.txt")))
La boucle ne sert à rien puisque fread va lire tout le fichier
d'un coup ( grâce au filesize ). Si tu fais une boucle, c'est, en
général, pour faire un truc dans le genre: