Nicht-alphanumerische Zeichen entfernen und Leerzeichen durch Bindestriche ersetzen
Beim Erstellen von URLs ist es notwendig, Titel, die verschiedene Zeichen enthalten, in saubere Zeichenfolgen umzuwandeln besteht ausschließlich aus Buchstaben und Zahlen. Dabei werden Sonderzeichen entfernt und Leerzeichen durch Bindestriche ersetzt.
Implementierung mit regulären Ausdrücken
Reguläre Ausdrücke (Regex) bieten eine effektive Lösung für diese Aufgabe. So erzielen Sie das gewünschte Ergebnis:
Schritt 1: Leerzeichen durch Bindestriche ersetzen
$string = str_replace(' ', '-', $string);
Schritt 2: Nicht-alphanumerische Zeichen entfernen
$string = preg_replace('/[^A-Za-z0-9\-]/', '', $string);
Dieser Regex-Ausdruck entfernt alle Zeichen, die keine Buchstaben, Zahlen oder Bindestriche sind.
Verwendung:
echo clean('a|"bc!@£de^&$f g');
Ausgabe:
abcdef-g
Verhindern mehrerer aufeinanderfolgender Bindestriche
Um sicherzustellen, dass mehrere aufeinanderfolgende Bindestriche durch einen einzelnen Bindestrich ersetzt werden, verwenden Sie den folgenden zusätzlichen Schritt:
$string = preg_replace('/-+/', '-', $string);
Dieser Schritt ersetzt alle Vorkommen von zwei oder mehr aufeinanderfolgenden Bindestrichen durch einen einzelnen Bindestrich.
Das obige ist der detaillierte Inhalt vonWie entferne ich nicht-alphanumerische Zeichen und ersetze Leerzeichen durch Bindestriche in URLs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!