Php : nettoyer une chaine de caractères pour une Url
Une autre petite fonction php toute easy. Cette fois ci je vous propose de nettoyer vos chaînes de caractères afin de les utiliser dans vos urls.
Coté référencement naturel et accessibilité web il est en effet de rigueur d’avoir des urls les plus propres possibles.
Pour ceci la méthode est simple: pas de caractères spéciaux, des tirets en guise d’espace, et dans le meilleur des cas, enlever les articles (il, la, les…)
Comment faire:
//_______________________________ nettoyage pour url propre // function cleanChaine($String) { $Search = array("\\n", "\\r", "\n", "\r", " ", " ", "&", " ", " ", " ", " ", " ", " ", " ", " ", "à", "á", "â", "à", "À", "ç", "ç", "Ç", "é", "è", "ê", "ë", "É", "È", "é", "è", "ê", "í", "ï", "ï", "î", "ñ", "ô", "ò", "ö", "ô", "ó", "Ó", "ù", "û", ";"); $Replace = array("-","-","-","-", "-", "", "-", "-", "-", "-", "-", "-", "-", "-", "-", "a", "a", "a", "a", "A", "c", "c", "C", "e", "e", "e", "e", "E", "E", "e", "e", "e", "i", "i", "i", "n", "o", "o", "o", "o", "o", "O", "u", "u", "\;"); $String = str_replace($Search, $Replace, $String); $String = str_replace("'", "-", $String); $String = str_replace("\\", "-", $String); return $String; } $chaine='Ma chaine à nettoyer'; $chainePropre = cleanChaine($chaine); echo '<a href="/articles/'.$chainePropre.'.php">Mon lien</a>'; // |
Comment ca marche:
- str_replace : Avec un array -> On peu définir dans 2 array les valeurs à remplacer et les valeurs à mettre à la place. Il est important que les places dans les array correspondent. Ainsi dans mon exemple à sera remplacé par le a
- str_replace : Sans array (Sans arrêt! mouhahaha
). Vous pouvez directement déclarer dans le str_replace la chaine à trouver et à remplacer. Ici les apostrophes seront remplacées par des tirets.
Avec ça, vous n’avez plus d’excuse pour ne pas avoir de magnifiques urls.
Have fun!
| Imprimer l'article | Cette entrée a été posté par Tomredhot le 25/05/2010 à 11:18, et placée dans Php. Vous pouvez suivre les réponses à cette entrée via RSS 2.0. Vous pouvez laisser une réponse, ou bien un trackback depuis votre site. |

about 3 months ago
Yeah Impeccable!
about 2 months ago
Utiliser la fonction strtr() qui te fera gagner d’avantage de temps et de lisibilité :
about 2 months ago
Utiliser la fonction strtr() qui te fera gagner d’avantage de temps et de lisibilité :
$outpur = strtr($input, ‘ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ’, ‘aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn’);