Fonction PHP : to_permalink()
Ici, vous pouvez voir (et copier/coller) le code complet de la fonction PHP to_permalink(). N'hésitez pas voter pour cette fonction si elle vous plaît ou si vous vouv en servez !
to_permalink() ajouté le 2009-05-18 13:23:33 par seebz
function to_permalink($str)
{
$str = str_replace('&','et',$str);
// Converti en UTF-8 si nécessaire
if($str !== mb_convert_encoding(mb_convert_encoding($str,'UTF-32','UTF-8'),'UTF-8','UTF-32'))
$str = mb_convert_encoding($str,'UTF-8');
$str = htmlentities($str,ENT_NOQUOTES,'UTF-8');
$str = preg_replace('`&([a-z]{1,2})(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i','$1',$str);
$str = preg_replace(array('`[^a-z0-9]`i','`[-]+`'),'-',$str);
$str = strtolower(trim($str,'-'));
return $str;
}
Converti un chaine pour être utilisée dans une url.
L'intéret est que cette fonction fonctionne quel que soit l'encodage (charset) utilisé.
Usage:
$title = "J'adôre les Sushis";
$permalink = to_permalink( $title ); // "j-adore-les-sushis"
Commentaires sur la fonctions php
Tsadiq 07/07/2009 à 14:25
preg_replace('`&([a-z]{1,2})(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i','$1',$str);
Sinon, y'a aussi la fonction htmlentities() ou dans un autre style url_encode()
Je vous laisse aller voir sur php.net ;)
Amaury 03/09/2009 à 16:15
Merci merci merci !
Je me cassais la tête a cause d'un problème entre le codage sur notepad++ (UTF8) et le codage du site (ANSI) que je ne pouvais changer !
MERCI ! :-)
Malin 20/11/2009 à 20:36
Alors là, je dis chapeau, monsieur !
C'est exactement la fonction php qu'il me fallait alors maintenant je ne vais pas m'embêter, je vais faire un copié/collé mais chut, c'est entre nous...
;-)
Juin 06/01/2010 à 16:04
Puissante fonction qui ne laisse rien passé. Merci.
Seebz 17/02/2010 à 19:25
J'ai mis à jour la fonction sur mon site car elle laissait parfois passer des 'raquo' et autre entités html qui n'étaient pas bien gérées.
http://code.seebz.net/p/to-permalink/
plop 04/05/2010 à 02:46
J'avais fait un petit bout de code ou je devais formater des données avant d'envoyer sur un site distant.
Je bosse toujours en utf-8 donc pas la peine de rajouter de traitement supplémentaire....
function formatSearch($string){
$search = array ('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[^a-zA-Z0-9]@');
$replace = array ('e','a','i','u','o','c','-');
return preg_replace($search, $replace, $string);
}
Robin 27/05/2009 à 16:00
Merci pour cette fonction, moi qui m'embêtait encore hier avec des "ereg_replace"