|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : juin 2005 Messages : 342 ![]() |
Bonjour Forum !!
ça fait un petit moment que je cherche sur le net et que je teste des solutions, mais rien ne fonctionne... A priori, le problème est simple, mais je suis malheureusement incapable de le résoudre J'ai un script XML. Je dois le parcourir (via PEAR::XML_Parser_Simple) pour en récupérer du contenu. Le problème, c'est qu'arrivé à la balise "<dataContent>", le contenu est html, et il m'est donc impossible de le récupérer, car PEAR parse le contenu. J'ai donc pensé à remplacer le contenu html par du simili html, simplement remplacer dans le contenu de dataContent tous les caractères < par [ et > par ] Bref, je me suis dit qu'à coup de regex, ça devrai bien fonctionner, mais je n'arrive pas à trouver la bonne... le contenu html ne contient que des balises <p> et <org>, qui ressemble à une balise a href : <org idsrc="ISIN" value="FR0000xxxxxxx">ORGANISATION</org> Et c'est ici que ça coince... j'aimerai remplacer <org idsrc="ISIN" value="FR0000xxxxxxx">ORGANISATION</org> par [org idsrc="ISIN" value="FR0000xxxxxxx"]ORGANISATION[/org] malheureusement, mes connaissances en regex sont trop limitées pour arriver à mon but... Voici le pattern ou je suis arrivé (non-fonctionnel, bien entendu... ^<org.(?)>$ Si quelqu'un voulait bien se pencher sur mon problème, je lui en serait vraiment reconnaissant. Cordialement, Thierry |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : mai 2006 Messages : 521 ![]() |
Essaye en faisant un preg_replace :
Code :
preg_replace("#<org (.*?)>(.*?)<\/org>#mi", "[org $1]$2[/org]", $sujet); |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Je me permet de reprendre un peu la chaine précédente :
Code :
$resultat = preg_replace_all("#<org([^>]*)>([^<]*)<\/org>#Umi", "[org$1]$2[/org]", $sujet);
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Inscription : mai 2006 Messages : 521 ![]() |
tu as eu raison, mais j'ai eu la flemme de retrouver la syntaxe exacte.
je pense que l'autre dois marcher dans 90% des cas. Par contre il ,'existe pas de preg_replace_all. Juste un preg_match_all et preg_replace |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : juin 2005 Messages : 342 ![]() |
Merci beaucoup pour votre aide
via cette page : http://www.rexv.org/ j'avais trouvé la regex suivante en mode PCRE avec le remplacement mais ça ne fonctionnait pas ensuite avec php... Merci encore ! |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Citation:
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 1 ![]() |
salut tout le monde
He je suis a la recherche dune expression reguliere qui permettra de corriger les apostraphes dans une balies precis. exemple : <a href="#" onclick="AfficherFiche('fr','O'LEARY,MARIE-LISE',event); return false;" autocomplete="off">O'LEARY MARIE-LISE</a> j aimerais que quand c est <a href... que ' (apostrophe soit avec \ entre les parantese mais seulement si elle se trouve entre entre apostrophe). donc le resultat il faut que ca donne <a href="#" onclick="AfficherFiche('fr','O\'LEARY,MARIE-LISE',event); return false;" autocomplete="off">O'LEARY MARIE-LISE</a> j ai chercher mais je trouve pas la solution. qqun peut m aider ? merci et a bientot fred s. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
2 possibilités :
* Soit le code que tu cherches a "corriger" est du code généré par un de tes scripts => Dans ce cas là, tu corrige le script d'origine car c'est LUI qui génère cette erreur, donc c'est lui qui doit etre corrigé * Soit le code que tu cherches a "corriger" est du code généré par une autre page ou un autre script sur lequel tu n'a pas le controle... et dans ce cas là, si tu veux un bon conseil : change de script. Dans tout les cas, pas de regexp a utiliser ici. Il FAUT corriger le script d'origine ou en changer.
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com