Extraire les blocs php avec les expressions régulières [Résolu]

Signaler
Messages postés
3
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
24 mai 2007
-
Messages postés
3
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
24 mai 2007
-
Bonjour tlm,

J'ai un fichier php avec des morceaux de code en php et html, et j'aimerai pouvoir récupérer et stocker tous les bouts de code php en utilisant des expressions régulières.
Quelqu'un aurait-il la solution?
merci :D

4 réponses

Messages postés
3
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

^^ :p
En fait, avec les expressions régulières ce n'est pas possible de trouver la balise fermante correspondante à une balise ouvrante si plusieurs sont imbriquées..... MAIS!! (ouf!) Microsoft et son DOTnet le permet grâce à des sortes de balises et des conditionnelles que l'ont peut intégrer à l'expression régulière. Voici l'expression (je l'ai écrite en VB):

(<\?|<\?php)
    (?>                          
        (?!(<\?|<\?php)|(\?>))(.|\n)
        |(<\?|<\?php)(?<OUVRE>)
        |\?>(?<FERME>)
    )*
    (?(OUVRE)(?!))
\?>

J'la laisse au cas où elle servirait à qqun. Je l'ai découpée pour que ce soit plus clair. Contactez moi si besoin d'explications.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
une toute simple, à améliorer !

<\?[^?]+\?>

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
3
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

Cette expression régulière fonctionne mais pas lorsque par exemple on trouve "<?" à l'intérieur des "<? ...?>".
Par exemple :
<?
    echo "blabla";
    echo "<? echo "blabla2"; ?>";
?>

Désolé, j'avais oublié de préciser ce petit détail

En tout cas, merci pour ta réponse :)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
d'ou le coté "a ameliorer" que je précisais plus haut ^^

pour faire tes tests:
http://www.vbfrance.com/codes/REGEXP-WORKSHOP_17331.aspx

Renfield
Admin CodeS-SourceS- MVP Visual Basic