Texte propre pour une url ?

Nouveau WRInaute
Bonjour,

J'ai fais une fonction qui permet de dénuer une chaine de ses caractères spéciaux et autres caractères nuisibles lorsque l'on veut ajouter cette chaine dans une url.

Le problème c'est que ma fonction est vraiment longue et je me demande s'il existe un autre moyen (avec les expressions régulières par exemple) de raccourcir celle-ci :

Code:
function cleanStrForUrl($str) 
{ 
    $str = trim($str); 
     
    $str = str_replace(' ', '_', $str); 
    $str = str_replace('\'', '_', $str); 
    $str = str_replace('-', '_', $str); 
    $str = str_replace('&', 'et', $str); 
     
    $str = str_replace('Á', 'a', $str); 
    $str = str_replace('á', 'a', $str); 
    $str = str_replace('Â', 'a', $str); 
    $str = str_replace('â', 'a', $str); 
    $str = str_replace('Æ', 'ae', $str); 
    $str = str_replace('æ', 'ae', $str); 
    $str = str_replace('À', 'a', $str); 
    $str = str_replace('à', 'a', $str); 
    $str = str_replace('Å', 'a', $str); 
    $str = str_replace('å', 'a', $str); 
    $str = str_replace('Ã', 'a', $str); 
    $str = str_replace('ã', 'a', $str); 
    $str = str_replace('Ä', 'a', $str); 
    $str = str_replace('ä', 'a', $str); 

    $str = str_replace('Ç', 'c', $str); 
    $str = str_replace('ç', 'c', $str); 

    $str = str_replace('É', 'e', $str); 
    $str = str_replace('é', 'e', $str); 
    $str = str_replace('Ê', 'e', $str); 
    $str = str_replace('ê', 'e', $str); 
    $str = str_replace('È', 'e', $str); 
    $str = str_replace('è', 'e', $str); 
    $str = str_replace('Ë', 'e', $str); 
    $str = str_replace('ë', 'e', $str); 
    $str = str_replace('€', 'e', $str); 
     
    $str = str_replace('Í', 'i', $str); 
    $str = str_replace('í', 'i', $str); 
    $str = str_replace('Î', 'i', $str); 
    $str = str_replace('î', 'i', $str); 
    $str = str_replace('¡', 'i', $str); 
    $str = str_replace('Ì', 'i', $str); 
    $str = str_replace('ì', 'i', $str); 
    $str = str_replace('Ï', 'i', $str); 
    $str = str_replace('ï', 'i', $str); 
     
    $str = str_replace('Ñ', 'n', $str); 
    $str = str_replace('ñ', 'n', $str); 
     
    $str = str_replace('Ó', 'o', $str); 
    $str = str_replace('ó', 'o', $str); 
    $str = str_replace('Ô', 'o', $str); 
    $str = str_replace('ô', 'o', $str); 
    $str = str_replace('?', 'oe', $str); 
    $str = str_replace('?', 'oe', $str); 
    $str = str_replace('Ò', 'o', $str); 
    $str = str_replace('ò', 'o', $str); 
    $str = str_replace('Õ', 'o', $str); 
    $str = str_replace('õ', 'o', $str); 
    $str = str_replace('Ö', 'o', $str); 
    $str = str_replace('ö', 'o', $str); 
     
    $str = str_replace('?', 's', $str); 
    $str = str_replace('?', 's', $str); 
     
    $str = str_replace('Ú', 'u', $str); 
    $str = str_replace('ú', 'u', $str); 
    $str = str_replace('Û', 'u', $str); 
    $str = str_replace('û', 'u', $str); 
    $str = str_replace('Ù', 'u', $str); 
    $str = str_replace('ù', 'u', $str); 
    $str = str_replace('Ü', 'u', $str); 
    $str = str_replace('ü', 'u', $str); 
     
    $str = str_replace('Ý', 'y', $str); 
    $str = str_replace('ý', 'y', $str); 
    $str = str_replace('?', 'y', $str); 
    $str = str_replace('ÿ', 'y', $str); 
         
    $str = strtolower($str); 
     
    $len = strlen($str); 
     
    for ($i = 0; $i < $len; $i++) 
    { 
        if (!ereg('[-_0-9a-z]+', $str{$i})) 
        { 
            $str = str_replace($str{$i}, '', $str); 
             
            $len = strlen($str); 
        } 
    } 

     
    while(!ereg('[0-9a-z]+', $str{0})) 
    { 
        $str = substr($str, 1, $len); 
    }  

    $len = strlen($str); 
     
    while(!ereg('[0-9a-z]+', $str{$len-1})) 
    { 
        $str = substr($str, 0, $len-1); 
         
        $len = strlen($str); 
    } 
     
    $str = str_replace('__', '_', $str); 
     
    return $str; 
}


Merci à vous.
 
WRInaute accro
Code:
strtr($str,"ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
               "AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNn");
en ajoutant les codes qui t'intéressent :wink:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut