PHP: creare uno slug da una stringa

PHP: creare uno slug da una stringa

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;
}

Torna su