1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
function rewrite($texte)
{
// Définition des caracteres accentués
$car_speciaux = array( 'A', 'Á', 'Â', 'A', 'Ä', 'A', 'A', 'a', 'á', 'â', 'a', 'ä', 'a', 'a', 'E', 'É', 'E', 'Ë', 'e', 'é', 'e', 'ë', 'I', 'Í', 'Î', 'I', 'i', 'í', 'î', 'i', 'O', 'Ó', 'Ô', 'O', 'Ö', 'O', 'o', 'ó', 'ô', 'o', 'ö', 'o', 'U', 'Ú', 'U', 'Ü', 'u', 'ú', 'u', 'ü', 'ß', 'Ç', 'ç', 'D', '?', 'N', 'n', '?', '?', 'Ý' );
// ... et de leurs "équivalents" non-accentués
$car_normaux = array( 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'B', 'C', 'c', 'D', 'd', 'N', 'n', 'P', 'p', 'Y' );
// On commence par supprimer les accents
$texte = str_replace($car_speciaux, $car_normaux, $texte);
// On supprime les entités html
$texte = strip_tags( $texte );
// On remplace les caracteres non-alphanumériques par le séparateur $sep_mots
$texte = preg_replace( "/[^A-Za-z0-9]+/", "-", $texte );
// On supprime le séparateur s'il se trouve en début ou fin de chaîne
$texte = trim( $texte, "-" );
$texte = trim( $texte, "_" );
// On limite la chaine a un nombre maxi de caracteres (ici 50 caracteres)
$texte = substr( $texte, 0, 150 );
// On convertit le tout en minuscules
$texte = strtolower( $texte );
// On retourne le résultat
return ( $texte );
} |
Partager