Avrete notato che tutti i maggiori CMS del momento come anche wordpress (se impostato correttamente) mettono il titolo di un elemento nell’indirizzo stesso, ovviamente essendo un indirizzo non si può usare il testo cosi come è ma viene epurato da tutti quei caratteri che non sono ammessi nell’indirizzo di un sito web.Vediamo una funzione che prende in entrata una stringa contenente il titolo di un articolo o il nome di un utente ad esempio, e restituisce una versione della stessa stringa pronta per essere usata nell’url di un sito.
function urlSanitize($string) { $string = preg_replace("`\[.*\]`U","",$string); $string = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$string); $string = htmlentities($string, ENT_COMPAT, 'utf-8'); $string = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i","", $string ); $string = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $string); return strtolower(trim($string, '-')); }
la funzione urlSanitize è piuttosto semplice rimuove tutti i riferimenti a caratteri non adeguati per un indirizzo web, sostituisce spazi e caratteri speciali.
Ecco come funziona la sua chiamata:
$title = 'PHP, convertire una stringa in una versione url SEO'; $seotitle = urlSanitize($title); echo $seotitle; //stampa: php-convertire-una-stringa-in-una-versione-url-seo
Tenete da parte con cura questa funzione perchè è molto utile nella realizazione di siti al giorno d’oggi dove il SEO è una questione fondamentale per qualsiasi progetto.
ciao!
non funziona con i caratteri accentati.
ciao!