2010-11-22 16 views
5

voglio generare la stringa come SEO friendly URL. Voglio che lo spazio vuoto multiplo per essere eliminato, l'unico spazio per essere sostituito da un trattino (-), poi strtolower e senza caratteri speciali dovrebbe essere consentito.Come sostituire uno o più spazi consecutivi con un singolo carattere?

Per questo io sono attualmente il codice come questo:

$string = htmlspecialchars("This Is The String"); 
$string = strtolower(str_replace(htmlspecialchars((' ', '-', $string))); 

Il codice di cui sopra genererà più trattini. Voglio eliminare quello spazio multiplo e sostituirlo con un solo spazio. In breve, sto cercando di raggiungere l'URL amichevole SEO come stringa. Come lo faccio?

+0

Correlato: http://stackoverflow.com/questions/741553/how-can-i-convert-two-or-more-dash-to-singles-and-remove-all-dash-at-the-begi , http://stackoverflow.com/questions/4051889/regular-expression-any-text-to-url-friendly-one, et al. – Gumbo

risposta

18

È possibile utilizzare preg_replace per sostituire qualsiasi sequenza di caratteri spazi bianchi con un pizzico ...

$string = preg_replace('/\s+/', '-', $string); 
  • Le barre esterne sono delimitatori per il modello - hanno appena segnano dove il modello inizia e finisce
  • \ s corrisponde a qualsiasi whitespace character
  • + provoca l'elemento precedente match 1 or more times. Di default, questo è 'avido', quindi mangerà quante più partite consecutive possibili.
  • vedere la pagina di manuale su PCRE syntax per maggiori dettagli
+0

grazie per la risposta, le sarei grato se potesse spiegare che cosa fa il primo parametro nella funzione realmente fa. –

+1

grazie Paul, ho capito. devo studiare di più sull'espressione regolare. –

+0

Ottima risposta Paul. Posso chiederti come combaci 2 o più spazi? –

0
echo preg_replace('~(\s+)~', '-', $yourString); 
0

Ciò che si vuole è "slugify" una stringa. Prova una ricerca su SO o google su "php slugify" o "php slug".

+0

Sta cercando una risposta su StackOverflow. Google non è una risposta. -1 – ALH

Problemi correlati