Extraire les blocs php avec les expressions régulières

Résolu
shaggadelic Messages postés 3 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 24 mai 2007 - 22 mai 2007 à 15:41
shaggadelic Messages postés 3 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 24 mai 2007 - 24 mai 2007 à 00:24
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

shaggadelic Messages postés 3 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 24 mai 2007
24 mai 2007 à 00:24
^^ :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.
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 mai 2007 à 16:18
une toute simple, à améliorer !

<\?[^?]+\?>

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
shaggadelic Messages postés 3 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 24 mai 2007
23 mai 2007 à 13:47
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 :)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 mai 2007 à 21:30
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
0