PHP – Fonction – Nettoyer une chaîne de caractères pour garantir une URL

En farfouillant dans certains fichiers de codes que j’ai par milliers dans mon PC et disques durs, je retrouve parfois de petites fonctions PHP prêtent à l’emploi et autant en faire profiter, car ça peut toujours servir à mes lecteurs. Cette fois je vous propose une petite fonction qui vous permettra de nettoyer une chaîne de caractères afin de l’intégrer à une URL par exemple. Il y a plusieurs autres utilités à cela, comme par exemple, rendre les noms de fichiers ou d’images plus propres pour le web, mais qui restent lisibles pour l’homme.

php

Fonction clear_str() :

/**
 * Transforme une chaîne de caractères en alphanumérique, idéal pour y intégrer à une URL
 *
 * @param string $text
 * @param string $charset (default utf-8) or iso-8859-1
 * @param string $separator ('-')
 * @return string
 */

function clear_str($text, $separator = '-', $charset = 'utf-8') {
   
    // Pour l'encodage
    $text = mb_convert_encoding($text,'HTML-ENTITIES',$charset);
   
    $text = strtolower(trim($text));
   
    // On vire les accents
    $text = preg_replace(   array('/ß/','/&(..)lig;/', '/&([aouAOU])uml;/','/&(.)[^;]*;/'),
                    array('ss',"$1","$1".'e',"$1"),  
                    $text);
   
    // on vire tout ce qui n'est pas alphanumérique
    $text_clear = eregi_replace("[^a-z0-9_-]",' ',trim($text));// ^a-zA-Z0-9_-
   
    // Nettoyage pour un espace maxi entre les mots
    $array = explode(' ', $text_clear);
    $str = '';
    $i = 0;
    foreach($array as $cle=>$valeur){
       
        if(trim($valeur) != '' AND trim($valeur) != $separator AND $i > 0)
            $str .= $separator.$valeur;
        elseif(trim($valeur) != '' AND trim($valeur) != $separator AND $i == 0)
            $str .= $valeur;
       
        $i++;

    }
   
    //on renvoie la chaîne transformée
    return $str;
   
}

$titre = 'L\'exercice de chaîne à nettoyer';
$url = 'http://www.monsite.com/'.clear_str($titre);

echo $url; // donnera http://www.monsite.com/l-exercice-de-chaine-a-nettoyer

Utilisation :
clear_str(‘ma chaine de caractère à nettoyer’, ‘mon séparateur’, ‘encodage que j\’utilise’);

Si vous avez des commentaires ou suggestions, faites le moi savoir :)

Bon code à tous !

Articles pouvant vous intéresser :

No Responses

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*