Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2538 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  besoin d'aide sur expressions régulieres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

besoin d'aide sur expressions régulieres

n°1580691
freed102
Arayashiki
Posté le 29-06-2007 à 11:00:26  profilanswer
 

bonjour à tous,
 
j'ai besoin d'aide pour les expressions régulieres, c quelquechose que je ne maitrise pas du tout et je cherche une solution rapide et efficace pour parser un fichier et supprimer/remplacer des blocs entiers de contenu.
 
 
en gros dans mon bloc de texte j'ai des blocs qui ressemblent à ça :
 


<h2>Une tentative de paiement à été effectuée le 09-05-2007 à 00:08:41</h2><br /><strong>Réponse serveur :</strong> Paiement validé (code-retour : paiement)<br /><strong>Référence :</strong> BOAU1178662067<br /><strong>Montant :</strong> 20EUR<br /><br /><br />La base de donnée a bien été mise à jour<br /><br /><br /><br />Array<br />
(<br />
    [co_id] => 62849<br />
    [co_champ1] => BOAU1178662067<br />
    [co_champ2] => Melle<br />
    [co_champ3] => Martine<br />
    [co_champ4] => Dupont<br />
    [co_champ5] => 1 rue de la chausée<br />
    [co_champ6] => 77145<br />
    [co_champ7] => Trifouille les oies<br />
    [co_champ8] => martine.dupont@monmail.com<br />
    [co_champ9] => 06.66.44.55.66<br />
    [co_champ10] => cb<br />
    [co_champ11] => Paiement validé<br />
    [co_champ12] => non<br />
    [co_champ13] => 09-05-2007 à 00:08:41<br />
    [co_champ14] => <br />
    [co_champ15] => <br />
    [co_champ16] => <br />
    [co_champ17] => <br />
    [co_champ18] => <br />
    [co_champ19] => <br />
    [co_champ20] => <br />
    [co_grdtexte1] => <br />
    [co_grdtexte2] => <br />
    [co_grdtexte3] => <br />
    [co_numint1] => 6<br />
    [co_numint2] => <br />
    [co_numint3] => <br />
    [co_numint4] => <br />
    [co_numint5] => <br />
    [co_numdbl1] => 20<br />
    [co_numdbl2] => <br />
    [co_date1] => 2007-05-09<br />
    [co_date2] => 2007-05-09<br />
    [co_datecrea] => 2007-05-09<br />
)<br />
 


 
en cherchant un peu et en utilisant une extension firefox pour m'aider j'ai trouvé cette regex là : <h2>.*(\n.*){36}
 
 
sur firefox ça marche... mais en PHP ça mouline et ça ne retourne rien :
 

Code :
  1. $filename="_test_2007_05_09.htm";
  2. $str=file_get_contents ( $filename,  filesize($filename) );
  3. $str=ereg_replace("<h2>.*(\n.*){36}","",$str);


 
HELP ME PLEASE !!!
 
freed


Message édité par freed102 le 29-06-2007 à 11:01:53
mood
Publicité
Posté le 29-06-2007 à 11:00:26  profilanswer
 

n°1580692
AlphaZone
Posté le 29-06-2007 à 11:02:16  profilanswer
 

Tu veux remplacer quoi aussi?
 
Sinon tu as ce site : http://www.expreg.com/


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
n°1580703
freed102
Arayashiki
Posté le 29-06-2007 à 11:11:47  profilanswer
 

je veux rechercher tout ce qui ressemble au  bloc ci dessus par rien dans mon texte ! je veux les supprimer !  
 
PS : c sur ce site que j'ai pris mes "conseils", j'ai passé ma soirée à lire leurs articles.

n°1580710
AlphaZone
Posté le 29-06-2007 à 11:24:02  profilanswer
 

Si le bloc se trouve toujours à la même ligne, tu peux te baser sur le numéro. C'est pas très fiable mais c'est ce qu'il y a de plus simple et de plus rapide.
 


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
n°1580717
freed102
Arayashiki
Posté le 29-06-2007 à 11:28:13  profilanswer
 

non justement ya des retour chariot partout et le contenu du bloc varie mais est toujours formaté de la même façon

n°1580733
AlphaZone
Posté le 29-06-2007 à 11:41:59  profilanswer
 

Je pense qu'il faudrais que tu mettes toutes tes lignes sur une seule ligne afin de retrouver la chaine "<h2>....)<br />".
Je ne vois pas d'autre moyen. Tu peux toujours rajouter dans ta règle les chaines de caractères statique. Ta recherche sera d'autant plus efficace et surtout plus sûr.


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
n°1580738
freed102
Arayashiki
Posté le 29-06-2007 à 11:54:03  profilanswer
 

j'ai viré les \n ... mais j'ai pas le bon resultat
 
 

Code :
  1. $filename="_test_cmic_sortie_2007_05_09.htm";
  2. $str=file_get_contents ( $filename,  filesize($filename) );
  3. $str=str_replace("\n","",$str);
  4. $str=str_replace("\r","",$str);
  5. $str=preg_replace("#<h2>.*\)#","",$str);


 
me retourne  
 
<br /


Message édité par freed102 le 29-06-2007 à 11:55:01
n°1580744
freed102
Arayashiki
Posté le 29-06-2007 à 12:04:07  profilanswer
 

en fait j'aimerai qu'il me supprime tout ce qui commence par <h2> jusqu'au prochain <h3> .. le problem c'est qu'il me supprime tout jusqu'à la fin en me laissant que le dernier bloc qui commence par <h3> ... j'ai du rater un épisode :
 
$str=ereg_replace("<h2>Une.*<h3>","",$str);

n°1580749
soju
One shot !
Posté le 29-06-2007 à 12:20:25  profilanswer
 

utilise PCRE, plus puissant/performant
 

Code :
  1. $str=preg_replace('#<h2>.*<h3>#Uis','<h3>',$str);

(non testé)

n°1580750
freed102
Arayashiki
Posté le 29-06-2007 à 12:22:33  profilanswer
 

whaou ! p'tain ! du premier coup ! bravo !
 
cepandant il m'a laissé le dernier bloc... je ne sais pas pourquoi ! mais bon ça c pas tres grave !

mood
Publicité
Posté le 29-06-2007 à 12:22:33  profilanswer
 

n°1580752
soju
One shot !
Posté le 29-06-2007 à 12:26:44  profilanswer
 

freed102 a écrit :

cepandant il m'a laissé le dernier bloc... je ne sais pas pourquoi ! mais bon ça c pas tres grave !

si il n'y a pas de <h3> après le dernier bloc, normal.
je te laisse réfléchir à une autre regexp

n°1580757
freed102
Arayashiki
Posté le 29-06-2007 à 12:33:56  profilanswer
 

en tous cas merci beaucoup ça m'a vraiment aidé !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  besoin d'aide sur expressions régulieres

 

Sujets relatifs
aide sous prog excelbesoin d'aide en java ?
Demande aide tableau en cssbesoin d'aide pour créer un planning
Aide svp à l'impression d' une Frame sous VB 6.0Aide pour mon code
besoin d'aide pour requete mysql 
Plus de sujets relatifs à : besoin d'aide sur expressions régulieres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR