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

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.

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.

Voir/déposer un commentaire (1) | Signaler un problème