Beiträge

[PHP] Nur Buchstaben und Zahlen im String lassen

Nachdem ich diesen Schnipsel heute zum bestimmt 10 mal gesucht habe wird es jetzt Zeit ihn endlich mal hier zu verewigen.

Ihr kennt das vielleicht… da hat man einen String – egal ob einen Dateinamen beim Dateiupload oder eine Usereingabe in einem Textfeld – und dort stehen Sachen drin die man einfach sooo nie wollte.

Bestes Beispiel war heute eine Kundin die mir Mitteilte das sie Bilder in ein Systemhochladen wollte und die Bilder werden einfach nicht angenommen. Beim Blick auf den Dateinamen im Ordner wurde mir klar warum der Browser nix anzeigte… der Dateiname lautete: „1_tr352&3 web2 the hill Da3 DSC03254.jpg“…
Genau für soetwas ist die folgende Funktion wundervoll… sie macht daraus einfach „3_1tr352amp3web2thehillDa3DSC03254.jpg“… gut, immer noch nicht schön… aber besser und der Browser kommt mit klar.

Anderes, einfacheres Beispiel… der User gibt irgendwo „bla(§blub1.- Dß?3äüö“ ein (warum auch immer)… die Funktion macht daraus „blablub1D3“.

Man kann natürlich auch noch andere Zeichen zulassen, wie z.B. Umlaute, Leerzeichen, Punkt, Komma, etc. Was man möchte.

Hier nun die Funktion:

$String = preg_replace('/[^a-z0-9]/', '', $String); //nur kleine Buchstaben und Zahlen

$String = preg_replace('/[^a-zA-Z0-9]/', '', $String); //kleine und grosse Buchstaben und Zahlen

$String = preg_replace('/[^a-zA-Z0-9äÄöÖüÜß]/', '', $String); //kleine und grosse Buchstaben, Umlaute und Zahlen

$String = preg_replace('/[^a-zA-Z0-9äÄöÖüÜß., ]/', '', $String); //kleine und grosse Buchstaben, Umlaute, Komma, Punkt, Leerzeichen und Zahlen