|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 14 ![]() |
Yop,
Je souhaite parser un fichier texte, pour être plus précis j'aimerai pouvoir supprimer des lignes se trouvant entre deux "délimiteurs". Exemple : Si la variable $domaine est égal à domaine.com alors on supprime la partie suivante du fichier texte : Code :
Ou //Debut domaine.com et //Fin domaine.com sont les deux délimiteurs. Donc je vais y aller à coups de fopen, file_get_contents et d'expressions régulières mais je ne sais pas comment lui indiquer la marche à suivre. :/ Voila, si une personnes pouvait me mettre sur le chemin ça serait sympa. Merci. |
||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : août 2006 Messages : 943 ![]() |
Tu parcouriras le fichier texte ligne par ligne (est-ce que tes valeurs sont lignes par lignes ?) (file_get_contents)
Jusqu'à la fin (feof) Et ligne par ligne, tu applique ton expression régulière (preg_match) La fonction preg_match affecte le résultat de ce qu'il trouve selon un "masque", dans un tableau..... Pour plus d'info sur l'utilisation elles-même des fonctions présentés, un pitit tour sur php.net !!! (ou voir ma signature : c'est toujours bon d'avoir un CHM sur soi....
__________________
Veni Vidi Vici ------------------------- Mes articles : developpez.com ou bien vbview.net ------------------------- Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!! Et aussi : --> pear_manual_fr.chm!!! Ou encore : --> Les tutoriaux & cours PHP de Développez.com ------------------------- |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 14 ![]() |
Ouai les valeurs sont lignes par lignes mais type master; notify yes; et }; se répétent à chaque ajouts de zones (je ne sais pas si ça va poser un problème).
Donc ce que je souhaite faire est tout à fait possible ? Merci de ta réponse. |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 14 ![]() |
Je bloque au niveau du preg_match, je ne vois pas ce que tu as voulu dire par "ligne par ligne".
Pour le moment j'ouvre le fichier, je fais une boucle qui va tester la fin du fichier mais après je sèche... Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Emmanuel ThierryIngénieur systèmes et réseaux Inscription : décembre 2003 Messages : 216 ![]() |
Essaye ceci :
Code :
preg_replace('/\szone\s"domaine.com"\s\{.\};\s/sU', "\n", $str); |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 14 ![]() |
Yop,
Désolé du délai de réponse mais je ne m'étais pas repenché sur problème depuis. Voici le code, cependant le fichier est modifié (date) mais pas le contenu. Code :
Merci de votre aide. |
||
|
|
00
|
|
|
#7 | ||
![]() ![]() Benjamin PREVOTArchitecte de système d'information Inscription : septembre 2004 Messages : 1 569 ![]() |
Salut, tu peux essayer ce code
Code :
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN F.A.Q. : Java, PHP, (X)HTML / CSS N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème |
||
|
|
00
|
|
|
#8 | |||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 14 ![]() |
Merci de ta réponse mais hélas j'ai toujours le même problème, le fichier semble être modifier mais j'ai toujours le contenu qui est censé disparaître.
Je n'ai vraiment aucune idée du problème. Code :
Citation:
J'ai bien un chmod 777 sur le fichier. D'autres idées ? Merci |
|||
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 14 ![]() |
Oki, c'est bon j'ai trouvé la toute petite erreur.
L'expression qui fonctionne est la suivante : Code :
$content = preg_replace('`//Debut ' . $domaine . '.*//Fin ' . $domaine . '`smU', '', $content); Code :
Merci Nesmontou |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com