Comment ignorer les sauts de ligne lors d'un parsing ? - PHP - Programmation
Marsh Posté le 13-06-2006 à 14:35:31
essaye:
http://php.net/file_get_contents
...pour récupérer le fichier d'un seul coup, à la condition qu'il ne soit pas trop volumineux.
Marsh Posté le 13-06-2006 à 15:07:31
Le parsing ne marche malheureusement pas mieux avec cette fonction
Marsh Posté le 13-06-2006 à 15:26:29
heu oui oui ton expression régulière est foireuse.
Code :
|
Le ``<`` indique le début d'un mot (après un espace/ponctuation, avant une lettre/nombre).
Pour avoir vraiment ``<`` il faut ajouter un \, c'est à dire deux \\ en comptant que tu est à l'intérieur de doubles guillemets ".
Marsh Posté le 13-06-2006 à 15:46:57
Le probleme avec file_get_contents en fait est qu'il ne récupère que le contenu et interprete les balises... même si elles n'existent pas comme dans mon cas.
En gros dans mon cas elle renvoie "ksjdflksdjflkjslkdfjljsdfljsdf sdfsdfsdfq qsdfqdf sdfsdfdfddddd" au lieu de "<DEBUT>ksjdflksdjflkjslkdfjljsdfljsdf sdfsdfsdfq qsdfqdf sdfsdfdfddddd<FIN>"
Marsh Posté le 13-06-2006 à 16:01:03
nan.
Renseignes toi sur les expressions régulières.
Y a plein de tutos sur le net.
Marsh Posté le 13-06-2006 à 16:09:41
nargy a écrit : nan. |
Ok au temps pour moi c'est juste mon navigateur qui interpretait les balise, pas la fonction.
Par contre le code suivant ne me renvoi toujours aucun résultat
Code :
|
Marsh Posté le 13-06-2006 à 16:38:07
> Renseignes toi sur les expressions régulières.
Lit la doc:
http://php.net/eregi
et fait tourner tes méninges.
J'ai horreur de corriger les regexp des autres, ça dépend beaucoup trop du format d'entrée, et c'est toujours pour faire de la bidouille. Apprends à en faire, ça t'aidera.
Marsh Posté le 13-06-2006 à 16:59:28
Je ne suis vraiment pas du genre à faire faire mon boulot par les autres...
Ce probleme ca fait pas mal de temps que je suis dessus et si je demande de l'aide c'est que vraiment je n'y arrive pas (alors que la solution doit etre si simple..).
Des expressions regulieres ca fait longtemps que j'en fait en perl, en c et en php, et la page que tu m'indique en lien j'ai du la visiter au moins 100 fois déjà...
Et même après pas mal de recherche sur google, ce probleme de saut de ligne à l'air d'être loin d'etre evident...
Sinon pour les "<", ca a toujours fonctionné pour moi sans les "\\"...
Enfin bon...
Marsh Posté le 13-06-2006 à 17:11:59
voui voui, les regexp perl ne sont pas le mêmes.
Si tu as l'habitude de perl, regarde plutôt:
http://fr.php.net/manual/fr/function.preg-match.php
(en plus c'est + efficace que eregi)
Je me souviens plus de la façon dont perl traite les retours à la ligne. Sinon, retour à la doc des regexp perl sur perl.org, il me semble. <<perlrequick>> (rapide) et <<perlretut>> (complet) comme mots clés dans les moteurs de recherche.
Marsh Posté le 13-06-2006 à 19:56:40
Code :
|
Marsh Posté le 13-06-2006 à 20:47:15
Ca marche
J'allais justement poster mon code :
Code :
|
Marsh Posté le 13-06-2006 à 14:11:03
Voilà ma question est très simple, j'ai le fichier suivant :
J'aimerais récupérer la chaine entre les marqueurs DEBUT et FIN, soit tel quel, soit en remplacant les sauts de lignes par un espace par exemple.
Je propose le code suivant :
Oui mais voilà ca ne marche pas, cette fonction eregi s'arrete à la premiere fin de ligne qu'il rencontre, et donc ne m'affiche aucun résultat.
Quelqu'un aurait-il une idée pour m'aider ?
D'avance merci.