zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 2010
-
28 avril 2010 à 17:52
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 2010
-
29 avril 2010 à 15:28
Bonjour tout le monde,
J'ai un problème étrange... je ne sais pas si juste moi qui est fatigué mais bon.
Je veux créer un lien pour changer de langue dans mon site.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 28 avril 2010 à 21:47
Salut Zen69,
J'ai un problème étrange... je ne sais pas si juste moi qui est fatigué mais bon.
Peut être l'es tu, mais ce "problème" n'est pas si étrange.
Tentative d'explication :
<?php
$url = 'http://www.gogle.com/?l=eng'; // ou $url[1], c'est juste pour simplifier
$pat = array('/l=eng/', '/l=fr/');
$rep = array('l=fr', 'l=eng');
echo preg_replace($pat, $rep, $url),"
";
?>
Ce qu'il se passe dans le preg_replace :
La fonction recherche le masque "l=eng" ($pat[0])
elle le trouve et le remplace par "l=fr", la chaine résultante est donc :
http://www.gogle.com/?l=fr elle passe à l'index 1 du tableau $pat pour chercher le masque 'l=fr'
le problème c'est qu'en interne $url n'est plus égal à 'http://www.gogle.com/?l=eng' mais à 'http://www.gogle.com/?l=fr' (remplacement précédent)
elle trouve donc le masque 'l=fr' et le remplace par $rep[1], soit :
http://www.gogle.com/?l=eng