On a toujours besoin à un moment ou un autre dans notre vie de développeur, de nettoyer une chaîne de caractères afin d’enlever les caractères spéciaux, les espaces, tout mettre en minuscule … Rien que pour les urls c’est plus propre !
Voici un petit script réalisé qui vous permet de faire cela :
function rewrite($label)
{
/* Expression régulière permettant le changement des caractères accentués en
* caractères non accentués.
*/
$search = array ('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i',
'@[ç]@i','@[^a-zA-Z0-9]@');
$replace = array ('e','a','i','u','o','c',' ');
$label = preg_replace($search, $replace, $label);
$label = strtolower($label); // mais toutes les lettres de la chaîne en minuscule
$label = str_replace(" ",'-',$label); // remplace les espaces en tirets
$label = preg_replace('#\-+#','-',$label); // enlève les autres caractères inutiles
$label = preg_replace('#([-]+)#','-',$label);
trim($label,'-'); // remplace les espaces restants par des tirets
return $label
}
Article original écrit par Clément JOBEILI et publié sur Dator Blog | © Dator.fr - 2008