Sujet : [php][astuce] Preg_replace_callback

Voici une petite astuce dont j'ai eu besoin et qui m'a couté un peu de tps de blocage smile. Je la mets pour quiconque serait bloqué à son tour.

L'utilisation de la fonction preg_replace_callback dans une méthode de classe diffère légèrement de l'utilisation avec une simple fonction.

Prenons un exemple :

class MaClasse {

function fonction1 ( $matches )
{
...
return $var;
}

function fonction2 ( $texte )
{

$texte = preg_replace_callback( "regExpr", "fonction1", $texte );
}

} 

On cherche ici à appeler la méthode fonction1 par la fonction preg_replace_callback. La syntaxe précedente est invalide car nous nous trouvons dans une classe.

Pour pouvoir utiliser la méthode fonction1 comme fonction de callback dans la méthode fonction2, il faut ecrire ceci :

$texte = preg_replace_callback( "regExpr", array(&$this, 'fonction1'), $texte); 

En règle générale, la syntaxe à utiliser avec une méthode de classe est la suivante :

preg_replace_callback(pattern, array('ClassName', 'methodName'), subject)

Voilà, c'est aussi simple que cela wink...encore faut-il le savoir ! roll

Sam.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW