Dernière mise à jour: mer 9 mai 2012

to_permalink()

(PHP 4 >= 4.3.0, PHP 5)

Remplace les caractères spéciaux d'un chaîne pour pouvoir être utilisée dans une url.

to_permalink() enlève les accents et caractères spéciaux se trouvant éventuellement dans la chaîne str, la chaîne sera ensuite mise en minuscules et les espaces remplacés par des tirets.
to_permalink() a l'avantage de fonctionner quelque soit l'encodage de la chaîne.

Source

<?php

function to_permalink($str)
{
	if($str !== mb_convert_encoding( mb_convert_encoding($str, 'UTF-32', 'UTF-8'), 'UTF-8', 'UTF-32') )
		$str = mb_convert_encoding($str, 'UTF-8', mb_detect_encoding($str));
	$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 = html_entity_decode($str, ENT_NOQUOTES, 'UTF-8');
	$str = preg_replace(array('`[^a-z0-9]`i','`[-]+`'), '-', $str);
	$str = strtolower( trim($str, '-') );
	return $str;
}

?>

Syntaxe

string to_permalink ( string $str )

Arguments

  1. str - La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne convertie.

Exemples

Exemple #1 Exemple avec to_permalink()

<?php

$str = "J'adôre les Sushis.";
$str = to_permalink($str);
echo $str; // j-adore-les-sushis

?>

Voir aussi

Commentaire(s)

  • Ou alors juste
    return trim( preg_replace( array( '`[^a-z0-9]`i','`[-]+`'), '-', strtolower( $str ) ), '-' ); ? Quelle différence notoire ?

    En tout cas, la fonction donnée renvoie :
    Warning: mb_convert_encoding() [function.mb-convert-encoding]: Illegal character encoding specified.

    A bientot !
  • Hello.

    Encore une fonction bien utile qui m'a permi de gérer mes problèmes d'accents.
    Respeckt due Seebz!

    @+...
  • super fonction, j'était entrain d'en faire une... la tienne est bien plus efficace :p

Poster un commentaire