Ma fonction de création d’Urlname

Quand on fait de la réécriture d’url, mieux vaut avoir une fonction qui transforme les url’s correctement du début à la fin.

J’ai vu un peu tout et n’importe quoi a ce sujet, de ceux qui tentent de remplacer tous les caractères possibles et imaginables par un équivalent a ceux qui utilisent juste urlencode en php.

Voici une fonction simpliste, qui retournera une chaine formatée pour être utilisée dans une url :

function toUrl($chain) {
	$chain=str_replace( array('à','á','â','ã','ä', 'ç', 'è','é','ê','ë', 'ì','í','î','ï','ñ', 'ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ','À','Á','Â','Ã','Ä','Ç', 'È','É','Ê','Ë','Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö', 'Ù','Ú','Û','Ü','Ý'), 
						array('a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','u','y','y','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N','O','O','O','O','O','U','U','U','U','Y'), $chain); // Replacing accents
	$chain=strtolower($chain); // To Lower
	$chain=preg_replace("/[^0-9a-z]/", " ", trim($chain)); // Replacing all special char by space
	$chain=str_replace(" ", "-", trim($chain)); // Replace spaces with dash
	$chain=preg_replace("/[-]{2,}/", "-", $chain); // Replace multiple dashes by one only
	return $chain; // Return chain
}

Normalement elle retourne toujours des résultats corrects, n’hésitez pas si vous voyez des choses a changer.

Vous aimerez aussi...