par
sadeq » 20 juin 2008, 19:20
les arguments sont désignés dans l'expression régulière en mettant certaines parties entre parenthèses. Mais on peut transmettre d'autres paramètres globaux à la fonction callback.
Par exemple:
<?php
// Fonction de remplacement
function transformer($trouvés)
{
global $param_externe;
// $trouvés[1] représente la première parenthèse capturante
// $trouvés[2] représente la deuxième parenthèse capturante
// $trouvés[3] représente la troisième parenthèse capturante
// On retourne le résultat attendu par preg_replace_callback
return $param_externe[0] . " " . strtoupper($trouvés[1]) . " " . $param_externe[1] . " " . $trouvés[2] . strtoupper($trouvés[3]);
}
// Texte à traiter
$texte = "maman est belle";
$param_externe = array("C'est ma", "qui");
// Expression régulière avec call_back à 3 paramètres entre ()
echo preg_replace_callback("|(maman)(.*)(belle)|", "transformer", $texte); //ça donne : C'est ma MAMAN qui est BELLE
?>
les arguments sont désignés dans l'expression régulière en mettant certaines parties entre parenthèses. Mais on peut transmettre d'autres paramètres globaux à la fonction callback.
[b]Par exemple:[/b]
[php]
<?php
// Fonction de remplacement
function transformer($trouvés)
{
global $param_externe;
// $trouvés[1] représente la première parenthèse capturante
// $trouvés[2] représente la deuxième parenthèse capturante
// $trouvés[3] représente la troisième parenthèse capturante
// On retourne le résultat attendu par preg_replace_callback
return $param_externe[0] . " " . strtoupper($trouvés[1]) . " " . $param_externe[1] . " " . $trouvés[2] . strtoupper($trouvés[3]);
}
// Texte à traiter
$texte = "maman est belle";
$param_externe = array("C'est ma", "qui");
// Expression régulière avec call_back à 3 paramètres entre ()
echo preg_replace_callback("|(maman)(.*)(belle)|", "transformer", $texte); //ça donne : C'est ma MAMAN qui est BELLE
?>[/php]