Définition d'un masque pour preg_match_all

Répondre
Amery
Amery
Déconnecté
Salut,

j'essaie de faire un masque pour récupérer avec preg_match_all le nom et la valeur d'une constante définie avec la fonction define() :

  1. <?php
  2. define("MARIABLE1","long texte");  
  3. define("MARIABLE_2","long texte");  
  4. define("MARIABLE3","long texte");  
  5. ?> 


J'ai fait le masque suivant qui fonctionne correctement quand je le teste sur http://www.gethifi.com/tools/regex

([A-Z0-9_]+)","([^"]+)


Mais dès que je le mets dans la fonction preg_match_all, j'ai des erreurs:

  1. <?php
  2. $str = '
  3. define("MARIABLE1","long texte");
  4. define("MARIABLE_2","long texte");
  5. define("MARIABLE3","long texte");
  6. ';  
  7.  
  8. preg_match_all('([A-Z0-9_]+)", "([^"]+)',$str,$output);  
  9. ?> 

Je dois échaper certains caractères, mais je sais jamais lesquels... J'ai essayé plusieurs combinaisons, mais sans succès...


Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '"' in /xxx/ on line 8
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
  1. <?php
  2. $str = '
  3. define("MARIABLE1","long texte");
  4. define("MARIABLE_2","long texte");
  5. define("MARIABLE3","long texte");
  6. ';  
  7.  
  8. preg_match_all('`define[[:space:]]*\([[:space:]]*"([A-Z0-9_^"]*)"[[:space:]]*,[[:space:]]*"(.*)"[[:space:]]*\)[[:space:]]*;`UiS', $str, $output);  
  9.  
  10. print_r($output);  
  11. ?> 


Ceci fonctionne.

Par contre, cela limite la définition des define avec des doubles quotes " et non des simples quotes '.
Amery
Amery
Déconnecté
Merci! Ca marche nickel.
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique