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

  FORUM HardWare.fr
  Programmation
  PHP

  Regexp à motié foireuse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Regexp à motié foireuse

n°1720324
the_bigboo
Posté le 19-04-2008 à 18:44:46  profilanswer
 

Salut !
 
Je suis en train de me faire une petit moteur de template hyper light.
La syntaxe en est très simple : Je définis dans le HTML des blocs comme suit :

Code :
  1. <div class="cms_bloc_categories">
  2. <ul class="cms_blocs">
  3.  <bloc_categorie_bloc_cms>
  4.  <li class="group_text">{titre_categorie}
  5.  <ul>
  6.   <bloc_cms_item><li><a href="#">{titre_item}</a></li></bloc_cms_item>
  7.  </ul>
  8.  </li>
  9. </bloc_categorie_bloc_cms>
  10. </ul>
  11. </div>


Avant je n'imbriquait pas les blocs. Il n'y en avait qu'un seul niveau. Et pour avoir le contenu d'un bloc j'utilisais :

Code :
  1. preg_match_all( "|<bloc_".$bloc_id.">(.*)<\/bloc_".$bloc_id.">|Usm" , $contenuHTML , $out );


 
Le souci est que si ça fonctionne très bien quand il n'y a qu'un seul niveau de bloc, ca ne fonctionne pas du tout quand ils sont imbriqués. Je soupsonne un probleme de gourmandise, mais avec ou sans le U ça ne change rien.
Donc si quelqu'un a une idée...
 
Merci d'avance !

mood
Publicité
Posté le 19-04-2008 à 18:44:46  profilanswer
 

n°1720335
the_bigboo
Posté le 19-04-2008 à 19:28:10  profilanswer
 

Personne ?

n°1720346
the_bigboo
Posté le 19-04-2008 à 20:07:55  profilanswer
 

:bounce:

n°1720367
the_bigboo
Posté le 19-04-2008 à 21:12:44  profilanswer
 

:bounce:

n°1720385
the_bigboo
Posté le 19-04-2008 à 22:30:04  profilanswer
 

:bounce:

n°1720401
CyberDenix
Posté le 19-04-2008 à 23:58:06  profilanswer
 

Ton problème d'imbrication peut se régler avec un coup de récursivité :
 
function mangebloc($string) {
  $toto = preg_match (..., $string)
  if ($toto) {
    mangebloc($toto);
  }
  // faire un truc
  return $monretour
}
 
// Et donc tu appelles ta fonction une fois :
$pure_html = mangebloc($template_html);


---------------
Directeur Technique (CTO)
n°1721291
the_bigboo
Posté le 21-04-2008 à 20:04:11  profilanswer
 

That's i've done ;)


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

  Regexp à motié foireuse

 

Sujets relatifs
probleme regexpRegexp qui devrait matcher plus d'une seule fois
[JS] Matcher des caractères Unicode via une regexpSous ensemble regexp
Regexp et cppHelp : script awk avec match regexp sur deux lignes
probleme de regexpAide pour regexp
Modèle REGEXPRegexp un peu compliquée
Plus de sujets relatifs à : Regexp à motié foireuse


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)