Strip variabile php, sostituisce gli spazi bianchi con trattini

Come posso convertire una variabile PHP da "My company & My Name" a "my-company-my-name"?

Ho bisogno di fare tutto in minuscolo, rimuovere tutti i caratteri speciali e sostituire gli spazi con trattini.

Questa function creerà una string amichevole SEO

function seoUrl($string) { //Lower case everything $string = strtolower($string); //Make alphanumbersc (removes all other characters) $string = preg_replace("/[^a-z0-9_\s-]/", "", $string); //Clean up multiple dashes or whitespaces $string = preg_replace("/[\s-]+/", " ", $string); //Convert whitespaces and underscore to dash $string = preg_replace("/[\s_]/", "-", $string); return $string; } 

dovrebbe andare bene 🙂

Sostituzione di caratteri specifici: http://se.php.net/manual/en/function.str-replace.php

Esempio:

 function replaceAll($text) { $text = strtolower(htmlentities($text)); $text = str_replace(get_html_translation_table(), "-", $text); $text = str_replace(" ", "-", $text); $text = preg_replace("/[-]+/i", "-", $text); return $text; } 

Sì, e se vuoi gestire personaggi speciali devi dichiararli nel model, altrimenti potrebbero essere cancellati. Puoi farlo in questo modo:

 strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $string)));