Bon, si vous lisez cette page, c'est que vous possédez un hébergement professionnel permettant l'url rewriting! Dans le cas contraire, ce qui suit ne va pas vous être d'une grande utilité .

Nous allons donc créer une fonction qui va nous permettre de :

  • Convertir les majuscules en minuscules.
  • Convertir les lettres avec accent en lettre sans accent.
  • Convertir tout ce qui n'est pas un chiffre ou une lettre en un tiret.
  • Remplacer les tirets multiples par un tiret unique.
  • Supprimer le dernier caractère si c'est un tiret.
  • Supprimer les espaces ou d'autres caractères de fin de chaîne.

Nous créons donc un nouveau fichier vide (php) sous Notepad++ que l'on va nommer "fonctions.php" et qui contiendra le code suivant :

<?php
 
//fonction pour re ecrire les url
function OptimiseUrl($chaine)
{    
    $chaine=strtolower($chaine);
 
    $accents = Array("/é/", "/è/", "/ê/","/ë/", "/ç/", "/à/", "/â/","/á/","/ä/","/ã/",
"/å/"
, "/î/", "/ï/", "/í/", "/ì/", "/ù/", "/ô/", "/ò/", "/ó/", "/ö/"); $sans = Array("e", "e", "e", "e", "c", "a", "a","a", "a","a", "a", "i", "i", "i",
"i"
, "u", "o", "o", "o", "o");   $chaine = preg_replace($accents, $sans,$chaine); $chaine = preg_replace('#[^A-Za-z0-9]#','-',$chaine);   // Remplace les tirets multiples par un tiret unique $chaine = ereg_replace( "\-+", '-', $chaine ); // Supprime le dernier caractère si c'est un tiret $chaine = rtrim( $chaine, '-' );   while (strpos($chaine,'--') !== false) $chaine = str_replace('--','-',$chaine);   return $chaine; } ?>

strtolower : permet de convertir tous les caractères alphabétiques en minuscules.

preg_replace : permet de rechercher et de remplacer «une expression» par une autre. Dans notre cas, on remplace le tableau (Array()) $accents par $sans puis grâce à l'expression régulière qui suit #[^A-Za-z0-9]#, on remplace tout ce qui n'est pas alphabétique ou numérique en un tiret.

ereg_replace : permet d'effectuer une recherche par expression rationnelle dans la chaîne en recherchant les occurrences puis les remplace par la chaîne replacement.

rtrim : permet de supprimer les espaces (ou d'autres caractères) de fin de chaîne. Dans notre cas, on supprime le dernier caractère si c'est un tiret.

strpos : permet de trouver la position d'un caractère dans une chaîne.

str_replace : permet de remplacer toutes les occurrences dans une chaîne.

Bien sûr, cette fonction peut être modifié/complété pour par exemple exclure certains mots...

Voila, notre fichier "fonctions.php" est près à l'emploi et devrat être mis à la racine de votre site.

Catégorie Créer un site dynamique

Commentaire sur : Création du fichier contenant la fonction pour l'url rewriting