Page 1 sur 1

probleme preg_replace

Posté : 26 juil. 2005, 14:45
par VaN
<?php
function no_accent($str_accent) 
{
   $pattern = Array("/é/", "/è/", "/ê/", "/ç/", "/à/", "/â/", "/î/", "/ï/", "/ù/", "/ô/");
   // notez bien les / avant et après les caractères
   $rep_pat = Array("e", "e", "e", "c", "a", "a", "i", "i", "u", "o");
   $str_noacc = preg_replace($pattern, $rep_pat, $str_accent);
   return $str_noacc;
}
$accent = "Bé alors comment va ta mère ? Où vas tu ? àààhh !!";
echo $accent."<br>";
no_accent ($accent);
echo $str_noacc;
?>
me renvoie Undefined variable: str_noacc in c:\program files\easyphp1-7\www\extranet\back\ressources\accent.php on line 21

Ou est le problème ?

Posté : 26 juil. 2005, 14:46
par ouckileou
$str_noacc est une variable locale de ta fonction, non définie dans le reste du script

comme tu fais un return $str_noacc, il faut que tu rècupères ce retour de fonction dans une variable
$str_noacc = no_accent();
echo $str_noacc; 

Posté : 26 juil. 2005, 14:47
par Cyrano
remplace les deux dernière ligne par ceci:
$chaine = no_accent ($accent);
echo $chaine;

Posté : 26 juil. 2005, 14:48
par zeus
C'est pas parce que tu utilise $str_noacc dans ta fonction que tu peut l'utiliser dans le code.

Cette variable à une portée locale, c'est à dire que tu ne peut l'utiliser que dans la fonction. pour afficher cette variable, il faut que tu récupère le retour de ta fonction et que tu l'affiche
$retour = no_accent ($accent);
echo $retour;