Expression reguliere

lili345 Messages postés 1 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 - 11 mars 2009 à 15:42
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 11 mars 2009 à 19:57
bonjour a tous
j'ai un pb
j'aimerais trouver dans un code php si c'est une classe ou non donc pour cela j'utilise la fonction preg_match comme ceci mais cela ne fonctionne par car mon expression ne doit pas être bien écrite $p= class nomdelaclasse {

ntenu= file_get_contents($valeur);
// $p='/bonjour/';
$p="/[]*class[]+([a-zA-Z_]+)[]*\{/";
if (preg_match ($p, $contenu))
{
echo "La chaine de caractere existe dans le fichier : ".$valeur."
";
}

2 réponses

DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 1
11 mars 2009 à 16:30
Bonjour,

En effet, le pattern est mal construit, voici une solution :

$content = file_get_contents($file);
preg_match('#class\s+([a-z0-9_]+)#i', $content, $matches);

Oû: "class" est l'occurrence à matcher, suivi d'un ou plusieurs caractères d'espacement, suivi d'une chaîne de caractères.

NOTA: $matches[1] contient le nom de la classe.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 mars 2009 à 19:57
salut

la methode correcte, c'est d'utiliser une fonction comme ca :

http://fr2.php.net/manual/fr/function.token-get-all.php
http://fr2.php.net/tokens
0
Rejoignez-nous