emo Wie kann man mit PHP alle Sonderzeichen entfernen außer Bindestriche?

  • humboldt
  • humboldts Avatar Autor
16 Okt 2015 11:37 #598

Hallo,

ich möchte eine URL etwas suschmaschinenfreundlicher gestalten und möchte deswegen alle Sonderzeichen entfernen, alles kleinschreiben und Leerzeichen durch ein Minus bzw. Bindestrich ersetzen.

Alles kleineschreiben habe ich ich mit der Funktion strtolower($string) hingekriegt, die Leerzeichen habe ich durch ein Minus ersetzt, die Sonderzeichen habe ich auch mit preg_replace() hingekriegt ABER dann wird auch mein Minus bzw. der Bindestrich rausgehauen. Ich bin nicht sicher im Umgang mit preg_replace, daher die Frage, wie man alles rausnehmen kann, bis auf den Bindestrich?

Sehr dankbar für Hilfe!!

  • Gast
  • Gasts Avatar Autor
16 Okt 2015 12:17 #600

Was hast Du denn bisher in Deiner preg_replace drinstehen? Das wäre hilfreich zu wissen...

  • humboldt
  • humboldts Avatar Autor
16 Okt 2015 12:41 #601

Hallo und danke für die schnelle Rückmeldung:

So sieht es bis jetzt aus:

preg_replace('/[^A-Za-z0-9]+/', '', $string);

Eine Möglichkeit wäre noch str_replace aber ich glaube, das ist zu aufwändig?!

  • Gast
  • Gasts Avatar Autor
17 Okt 2015 07:49 #619

Das ist auch noch nicht ganz korrekt... Hiermit sollte es gehen:

$string_neu = preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'), array('', '-', ''), $string)

Hinterfragt

Spam-Pranger

Dieser Mist nervt jeden! Hier sind die verrücktesten und derbsten Spam-Nachrichten. Ansehen...