par
Hubert Roksor » 28 juil. 2007, 03:16
Le problème c'est que preg_replace() effectue les remplacements les uns après les autres, Tous les "a", puis tous les "b", puis tous les "c", et du coup remplacent le "c" de "src".
Il te faut une fonction qui effectue tous les remplacements en même temps, comme strtr().
// On crée la liste de caractères
$chars = 'abcdefghijklmnopqrstuvwxyz';
/**
* On met chaque caractère individuel dans un tableau avec
* comme valeur l'image de remplacement
*/
$tr = array();
foreach (str_split($chars, 1) as $c)
{
$tr[$c] = '<img src="' . $c . '.jpg">';
}
$str = 'phpfrance';
echo strtr($str, $tr);
Le problème c'est que preg_replace() effectue les remplacements les uns après les autres, Tous les "a", puis tous les "b", puis tous les "c", et du coup remplacent le "c" de "src".
Il te faut une fonction qui effectue tous les remplacements en même temps, comme strtr().
[php]// On crée la liste de caractères
$chars = 'abcdefghijklmnopqrstuvwxyz';
/**
* On met chaque caractère individuel dans un tableau avec
* comme valeur l'image de remplacement
*/
$tr = array();
foreach (str_split($chars, 1) as $c)
{
$tr[$c] = '<img src="' . $c . '.jpg">';
}
$str = 'phpfrance';
echo strtr($str, $tr);[/php]