PHP: come creare uno slug da una stringa

In PHP possiamo creare uno slug con relativa semplicità.

PHP di Gabriele Romanato

In PHP possiamo creare uno slug con relativa semplicità.

La soluzione è la seguente:


function create_slug($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;
}