Vielen Dank. Es ist eine schöne einfache Funktion. Es wäre schön, erweitert zu werden, um bestimmte seo-unfreundliche Schlüsselwörter wie 'das' & 'und' zu entfernen.
Rorypicko
4
Diese Frage legt nahe, dass es sich nicht lohnt, Stoppwörter zu entfernen. Ich habe einen Kern erstellt, der Rorys Lösung eine akzentuierte Zeichenbehandlung hinzufügt.
ChrisV
Wie kann ich das erste und letzte Leerzeichen ohne -Symbol entfernen ?
Kvvaradha
@Kvvaradha Fügen Sie die folgende Zeile als erste Zeile in die Funktion ein $string = trim($string);und das wird Ihr Problem lösen.
Ja, und wenn Sie mit Sonderzeichen umgehen möchten, müssen Sie diese im Muster deklarieren, da sie sonst möglicherweise gelöscht werden. Sie können es so machen:
Antworten:
Diese Funktion erstellt eine SEO-freundliche Zeichenfolge
function seoUrl($string) { //Lower case everything $string = strtolower($string); //Make alphanumeric (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; }
sollte gut sein :)
quelle
-
Symbol entfernen ?$string = trim($string);
und das wird Ihr Problem lösen.Ersetzen bestimmter Zeichen: http://se.php.net/manual/en/function.str-replace.php
Beispiel:
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; }
quelle
Ja, und wenn Sie mit Sonderzeichen umgehen möchten, müssen Sie diese im Muster deklarieren, da sie sonst möglicherweise gelöscht werden. Sie können es so machen:
strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $string)));
quelle