Frage
Ich bin Einfügen von Alias-Feld für meine db $ alias genannt wie kann ich Code (ich bin mit PHP für MySQL-Einsatz) um alle Leerzeichen zu entfernen und ersetzen Raum mit „-“ (versuchen, es zu ändern „WebUrl Format“, das heißt das Entfernen Leerzeichen)
Danke
Lösung
Hier ist die Methode, die ich für SEF Urls santize Strings verwenden:
$slug = trim(strtolower($value));
$slug = preg_replace('/[^a-z0-9 _-]/', '', $slug);
return preg_replace('/\s+/', '-', $slug);
Sie können ferner zusätzliche erlaubte Zeichen zum ersten regulären Ausdruck hinzuzufügen.
Bitte beachten Sie, dass dies nicht Unicode ist oder sogar vollständig ISO-8891 sicher, gut, es ist, aber es werde alles fallen lassen, die nicht a-z
ist. Das heißt, dass Sie die Zeichenfolge im Voraus normalisieren müssen (dh akzentuierte Zeichen ersetzen mit ihren schließt ASCII-Äquivalent.) Es gibt eine Reihe von SO Fragen und Antworten Umgang mit diesem, die ich vorher gesehen habe, aber ich kann sie nicht finden auf der Moment. Ich werde sie hier bearbeiten, wenn ich auf jeder stolpern.
Andere Tipps
Für nur Leerzeichen zu entfernen, möchten Sie die str_replace Methode . Wenn jedoch mit URLs arbeiten, können Sie die urlencode berücksichtigen und rawurlencode Methoden als auch.