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.
Fonction clear_str() :
[pastacode lang= »php » manual= »%2F**%0A*%20Transforme%20une%20cha%C3%AEne%20de%20caract%C3%A8res%20en%20alphanum%C3%A9rique%2C%20id%C3%A9al%20pour%20y%20int%C3%A9grer%20%C3%A0%20une%20URL%0A*%0A*%20%40param%20string%20%24text%0A*%20%40param%20string%20%24charset%20(default%20utf-8)%20or%20iso-8859-1%0A*%20%40param%20string%20%24separator%20(‘-‘)%0A*%20%40return%20string%0A*%2F%0Afunction%20clear_str(%24text%2C%20%24separator%20%3D%20’-‘%2C%20%24charset%20%3D%20’utf-8’)%20%7B%0A%0A%2F%2F%20Pour%20l’encodage%0A%24text%20%3D%20mb_convert_encoding(%24text%2C’HTML-ENTITIES’%2C%24charset)%3B%0A%0A%24text%20%3D%20strtolower(trim(%24text))%3B%0A%0A%2F%2F%20On%20vire%20les%20accents%0A%24text%20%3D%20preg_replace(%20array(‘%2F%C3%9F%2F’%2C’%2F%26(..)lig%3B%2F’%2C%20’%2F%26(%5BaouAOU%5D)uml%3B%2F’%2C’%2F%26(.)%5B%5E%3B%5D*%3B%2F’)%2C%0Aarray(‘ss’%2C%22%241%22%2C%22%241%22.’e’%2C%22%241%22)%2C%0A%24text)%3B%0A%0A%2F%2F%20on%20vire%20tout%20ce%20qui%20n’est%20pas%20alphanum%C3%A9rique%0A%24text_clear%20%3D%20eregi_replace(%22%5B%5Ea-z0-9_-%5D%22%2C’%20’%2Ctrim(%24text))%3B%2F%2F%20%5Ea-zA-Z0-9_-%0A%0A%2F%2F%20Nettoyage%20pour%20un%20espace%20maxi%20entre%20les%20mots%0A%24array%20%3D%20explode(‘%20’%2C%20%24text_clear)%3B%0A%24str%20%3D%20 »%3B%0A%24i%20%3D%200%3B%0Aforeach(%24array%20as%20%24cle%3D%3E%24valeur)%7B%0A%0Aif(trim(%24valeur)%20!%3D%20 »%20AND%20trim(%24valeur)%20!%3D%20%24separator%20AND%20%24i%20%3E%200)%0A%24str%20.%3D%20%24separator.%24valeur%3B%0Aelseif(trim(%24valeur)%20!%3D%20 »%20AND%20trim(%24valeur)%20!%3D%20%24separator%20AND%20%24i%20%3D%3D%200)%0A%24str%20.%3D%20%24valeur%3B%0A%0A%24i%2B%2B%3B%0A%0A%7D%0A%0A%2F%2Fon%20renvoie%20la%20cha%C3%AEne%20transform%C3%A9e%0Areturn%20%24str%3B%0A%0A%7D%0A%0A%24titre%20%3D%20’L%5C’exercice%20de%20cha%C3%AEne%20%C3%A0%20nettoyer’%3B%0A%24url%20%3D%20’http%3A%2F%2Fwww.monsite.com%2F’.clear_str(%24titre)%3B%0A%0Aecho%20%24url%3B%20%2F%2F%20donnera%20http%3A%2F%2Fwww.monsite.com%2Fl-exercice-de-chaine-a-nettoyer » message= » » highlight= » » provider= »manual »/]
Utilisation :
[pastacode lang= »php » manual= »clear_str(‘ma%20chaine%20de%20caract%C3%A8re%20%C3%A0%20nettoyer’%2C%20’mon%20s%C3%A9parateur’%2C%20’encodage%20que%20j%5C’utilise’)%3B » message= » » highlight= » » provider= »manual »/]
Si vous avez des commentaires ou suggestions, faites le moi savoir 🙂
Bon code à tous !
Articles pouvant vous intéresser :
9 février 2018
Bravo, tres interessant ! 🙂