Chercher une balise

Eléphanteau du PHP | 17 Messages

16 juin 2008, 15:29

Bonjour,

Je souhaiterais trouver une chaîne de caractères ("CONNECTION") dans un fichier texte.
Aussi il est possible que cette chaîne existe plusieurs fois dans le fichier.
Quelles fonctions pourrais-je utiliser?

Merci d'avance ?

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

16 juin 2008, 15:34

regarde les fonctions genre strstr ou tu peux le faire avec un preg_match
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Mammouth du PHP | 514 Messages

16 juin 2008, 15:34

preg_match_all()

Eléphanteau du PHP | 17 Messages

16 juin 2008, 16:17

En fait, il faut que je récupère la fin de la ligne après ma balise CONNECTION.
Les lignes avec la balise CONNECTION sont comme ça:

Code : Tout sélectionner

CONNECTION "x:/Dgi/plan/BDU_CAD_PARCELLE_C.TAB"
et ce que je souhaite récupérer est : x:/Toulouse/Mapinfo/Dgi/plan/BDU_CAD_PARCELLE_C.TAB

Mammouth du PHP | 1668 Messages

16 juin 2008, 19:21

C'est assez dûr à faire, donc voilà on base de solution
preg_match('#CONNECTION \"(.+)\"\n#i', file_get_content($fichier), $matches);
echo '<b>'.$matches[1].'</b>'; // On oublie pas les <b></b> pour l'effet de style :p
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphanteau du PHP | 17 Messages

17 juin 2008, 08:46

ça me renvoie des dizaines de "Notice: Undefined offset: 1 in ..."
le fichier boucle sans fin...

après modif :

Code : Tout sélectionner

preg_match_all('#CONNECTION \"(.+)\"\n#i', file_get_contents($dir.$fichier_map), $matches); echo $matches[]."\n";
cela me renvoie que des Array, pas de valeur dans ce tableau on dirait... :?
et cela se termine par Fatal error: Maximum execution time of 30 seconds exceeded in le mon fichier