Bonjour,
J'ai fais une fonction qui permet de dénuer une chaine de ses caractères spéciaux et autres caractères nuisibles lorsque l'on veut ajouter cette chaine dans une url.
Le problème c'est que ma fonction est vraiment longue et je me demande s'il existe un autre moyen (avec les expressions régulières par exemple) de raccourcir celle-ci :
Merci à vous.
J'ai fais une fonction qui permet de dénuer une chaine de ses caractères spéciaux et autres caractères nuisibles lorsque l'on veut ajouter cette chaine dans une url.
Le problème c'est que ma fonction est vraiment longue et je me demande s'il existe un autre moyen (avec les expressions régulières par exemple) de raccourcir celle-ci :
function cleanStrForUrl($str)
{
$str = trim($str);
$str = str_replace(' ', '_', $str);
$str = str_replace('\'', '_', $str);
$str = str_replace('-', '_', $str);
$str = str_replace('&', 'et', $str);
$str = str_replace('Á', 'a', $str);
$str = str_replace('á', 'a', $str);
$str = str_replace('Â', 'a', $str);
$str = str_replace('â', 'a', $str);
$str = str_replace('Æ', 'ae', $str);
$str = str_replace('æ', 'ae', $str);
$str = str_replace('À', 'a', $str);
$str = str_replace('à', 'a', $str);
$str = str_replace('Å', 'a', $str);
$str = str_replace('å', 'a', $str);
$str = str_replace('Ã', 'a', $str);
$str = str_replace('ã', 'a', $str);
$str = str_replace('Ä', 'a', $str);
$str = str_replace('ä', 'a', $str);
$str = str_replace('Ç', 'c', $str);
$str = str_replace('ç', 'c', $str);
$str = str_replace('É', 'e', $str);
$str = str_replace('é', 'e', $str);
$str = str_replace('Ê', 'e', $str);
$str = str_replace('ê', 'e', $str);
$str = str_replace('È', 'e', $str);
$str = str_replace('è', 'e', $str);
$str = str_replace('Ë', 'e', $str);
$str = str_replace('ë', 'e', $str);
$str = str_replace('€', 'e', $str);
$str = str_replace('Í', 'i', $str);
$str = str_replace('í', 'i', $str);
$str = str_replace('Î', 'i', $str);
$str = str_replace('î', 'i', $str);
$str = str_replace('¡', 'i', $str);
$str = str_replace('Ì', 'i', $str);
$str = str_replace('ì', 'i', $str);
$str = str_replace('Ï', 'i', $str);
$str = str_replace('ï', 'i', $str);
$str = str_replace('Ñ', 'n', $str);
$str = str_replace('ñ', 'n', $str);
$str = str_replace('Ó', 'o', $str);
$str = str_replace('ó', 'o', $str);
$str = str_replace('Ô', 'o', $str);
$str = str_replace('ô', 'o', $str);
$str = str_replace('Œ', 'oe', $str);
$str = str_replace('œ', 'oe', $str);
$str = str_replace('Ò', 'o', $str);
$str = str_replace('ò', 'o', $str);
$str = str_replace('Õ', 'o', $str);
$str = str_replace('õ', 'o', $str);
$str = str_replace('Ö', 'o', $str);
$str = str_replace('ö', 'o', $str);
$str = str_replace('Š', 's', $str);
$str = str_replace('š', 's', $str);
$str = str_replace('Ú', 'u', $str);
$str = str_replace('ú', 'u', $str);
$str = str_replace('Û', 'u', $str);
$str = str_replace('û', 'u', $str);
$str = str_replace('Ù', 'u', $str);
$str = str_replace('ù', 'u', $str);
$str = str_replace('Ü', 'u', $str);
$str = str_replace('ü', 'u', $str);
$str = str_replace('Ý', 'y', $str);
$str = str_replace('ý', 'y', $str);
$str = str_replace('Ÿ', 'y', $str);
$str = str_replace('ÿ', 'y', $str);
$str = strtolower($str);
$len = strlen($str);
for ($i = 0; $i < $len; $i++)
{
if (!ereg('[-_0-9a-z]+', $str{$i}))
{
$str = str_replace($str{$i}, '', $str);
$len = strlen($str);
}
}
while(!ereg('[0-9a-z]+', $str{0}))
{
$str = substr($str, 1, $len);
}
$len = strlen($str);
while(!ereg('[0-9a-z]+', $str{$len-1}))
{
$str = substr($str, 0, $len-1);
$len = strlen($str);
}
$str = str_replace('__', '_', $str);
return $str;
}
Merci à vous.