Fonction PHP pour créer un ‘slug’, un identifiant URL-friendly

Je parlais il n’y a pas longtemps des slugs dans WordPress et comment coder une fonction get_the_slug(). Il s’agit d’un identifiant URL-firiendly. L’idée est de le passer en argument dans l’adresse et d’écrire ensuite une rêgle pour la réécriture URL.

Je vous propose donc une fonction PHP qui crée facilement un slug à partir d’une chaine de caractères.

function generate_slug($str) {
	$maxlen = 42;  //Modifier la taille max du slug ici
	$slug = strtolower($str);
 
	$slug = preg_replace("/[^a-z0-9\s-]/", "", $slug);
	$slug = trim(preg_replace("/[\s-]+/", " ", $slug));
	$slug = preg_replace("/\s/", "-", $slug);
 
	return $slug;
}

Voici quelques exemples:

  1. CecI EST un %^%$& &%& TITRE COMplexe^$)^*)&
    1. ceci-est-un-titre-complexe
  2. brochure-tarifs-offres-mobile.pdf
    1. brochure-tarifs-offres-mobilepdf
  3. <title>Untitled Document</title>
    1. titleuntitled-documenttitle

 

Laisser un commentaire

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

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">