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

  FORUM HardWare.fr
  Programmation
  PHP

  [php/XML/regex] parsing bbcode aleatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php/XML/regex] parsing bbcode aleatoire

n°1004303
Lunatik3
Serial nounours
Posté le 08-03-2005 à 00:40:40  profilanswer
 

Bonjour.  
 
j'ai devellopé un parser bbcode pour mon site:
 
dont voici un morceau:
 

Code :
  1. $query = "/pseudocodes/balise";
  2.  $list = $this->xpathcontext->query($query);
  3.  for($i = 0; $i < $list->length; $i++){
  4.   $pscode = $list->item($i)->getAttribute("nom" );
  5.   $tag = str_replace('$',"\\",$list->item($i)->nodeValue);
  6.   if($list->item($i)->getAttribute("param" ) == "true" ){
  7.    $texte = preg_replace("(\[$pscode=([^]]*)\]([[:print:]-\n\t\r]*?)\[/$pscode\])",trim($tag),$texte);
  8.   }
  9.   elseif($list->item($i)->getAttribute("unique" ) == "true" ){
  10.    $texte = preg_replace("(\[$pscode\])",trim($tag),$texte);
  11.   }
  12.   else{
  13.    $texte = preg_replace("(\[$pscode\]([[:print:]-\n\t\r]*?)\[/$pscode\])",trim($tag),$texte);
  14.   }
  15.  }


 
un fichier xml contenant les balises est parsé.  
exemple

Code :
  1. <balise nom="u" >
  2.  <![CDATA[<u>$1</u>]]>
  3. </balise>
  4. <balise nom="b" >
  5.  <![CDATA[<strong>$1</strong>]]>
  6. </balise>
  7. <balise nom="i" >
  8.  <![CDATA[<em>$1</em>]]>
  9. </balise>


 
 
voici mon probleme. chez moi tout mes balises sont parsées et donc remplacé par du code html, mais sur le serveur d'ovh, je ne sais pas trop pourquoi mais parfois certain tag ne sont pas tout le temps parsé.  
 
par exemple certaines balises [li] sont parser correctement je je ne sais pourquoi la balise [li]juste en dessous ne l'est pas.
 
enfin si vous voulez voir par vous meme:
http://pllune.net/core.php5?article=4
 
je comprend vraiment pas la. Je ne vois pas de logique dans tous ça.  
Si vous pouviez m'eclairer ce serait vraiment cool.  
 
 
merci d'avance.
 
 
pierrot la lune


Message édité par Lunatik3 le 08-03-2005 à 00:41:03
mood
Publicité
Posté le 08-03-2005 à 00:40:40  profilanswer
 

n°1004428
soju
One shot !
Posté le 08-03-2005 à 09:47:28  profilanswer
 

c'est à cause des accents qui ne sont pas pris en compte dans la classe [: print:] chez ovh, essaye par exemple :

Code :
  1. $texte = preg_replace("#\[li\](.*)\[/li\]#Uis","<li>\\1</li>",$texte);

n°1004713
Lunatik3
Serial nounours
Posté le 08-03-2005 à 12:30:10  profilanswer
 

merci beaucoup. tu me sauves la vie ;)
 
les regex c'est magique


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

  [php/XML/regex] parsing bbcode aleatoire

 

Sujets relatifs
[DOM/XML/PHP] & dans texte = erreur de parsing[SGBDR]Travailler dans le monde XML
Parseur XMLVBS et XML et SQL !
Les couleurs en XML ?[XML/XSD] Bête problème de syntaxe
Je n'arrive pas a faire ma regex dans ce tableauregex : long a afficher la page
[FLASH XML] insérer une image dans mon menu ? 
Plus de sujets relatifs à : [php/XML/regex] parsing bbcode aleatoire


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