String filtern: Nur Buchstaben und Zahlen
yeahns
- php
Hallo,
ich möchte gerne die Seite meines Chors um einen internen Bilderhochladebereich erweitern, wobei ein hochgeladenes Set von Bildern in einen vom Benutzer erstellten (ganz einfach per text-input) Ordner kopiert wird.
Wie kann ich also meine Variable $_POST['Ordner'] so bearbeiten, dass für den Ordnernamen nur die Buchstaben und Zahlen verwendet werden?
Und wie ist das, sollten Leerzeichen in Unterstriche verwandelt werden oder sind Leerzeichen in Ordner- und Dateinamen auch auf Linux mittlerweile kein No-Go mehr?
Gruss,
Jens
Ich grüsse den Cosmos,
Wie kann ich also meine Variable $_POST['Ordner'] so bearbeiten, dass für den Ordnernamen nur die Buchstaben und Zahlen verwendet werden?
ereg()
EIne erklärung zu den RegExp findest du im PHP-Manual.
oder sind Leerzeichen in Ordner- und Dateinamen auch auf Linux mittlerweile kein No-Go mehr?
Wieso mittlerweile? Ich wüsste nicht, das es jemals so war. Du scheinst Linux mit DOS zu verwechseln.
Möge das "Self" mit euch sein
echo $begrüßung;
Wie kann ich also meine Variable $_POST['Ordner'] so bearbeiten, dass für den Ordnernamen nur die Buchstaben und Zahlen verwendet werden?
Nun, du könntest alles was keine Buchstaben und Zahlen (Unterstrich und Bindestrich sollten wenigstens auch erlaubt sein) ersatzlos streichen, sie mit einem Ersatzzeichen austauschen oder dem Anwender den den Upload solange ablehnen, bis er einen dir genehmen Dateinamen übergibt.
Genannt wurden bereits die ereg-Funktionen, die du aber nicht mehr verwenden solltest, da sie eine aussterbende Spezies sind. Statt dessen solltest du die Funktionen für Perl-kompatible reguläre Ausdrücke verwenden.
Und wie ist das, sollten Leerzeichen in Unterstriche verwandelt werden oder sind Leerzeichen in Ordner- und Dateinamen auch auf Linux mittlerweile kein No-Go mehr?
Alles eine Frage des richtigen Quotierens/Maskierens.
echo "$verabschiedung $name";