Thema: preg_match
Einzelnen Beitrag anzeigen
  #8  
Alt 09.09.2003, 14:15:45
tapferesschneid tapferesschneid ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 194
Also hier ist noch jemand ohne Ahnung, aber vieleicht funktioniert das hier:

PHP-Code:
$needle '/.(php|htm(l)?)$/';

if (!
preg_match($needle,$haystack)) echo 'not ';
echo 
'found'
So viel ich verstanden habe: Die »/« am Anfang und Ende sind die sog. Delimiter, müssen sein.
Das »$« am Ende heißt, daß $haystack mit der gesuchten Kette enden muß.
».« ist der escapte Punkt vor Deiner Dateiendung.
»|« heißt »oder«.
Die Konstruktion »(php|htm(l)?)« prüft, ob nach dem Punkt entweder ein »php« oder ein »htm« mit optional (dafür steht die »{0,1}« ersetzende Kurzform »?«) anschließendem »l« steht.

Weitere Kurzformen wären »+« für »1 oder mehrere« und »*« für »0 oder mehrere«.

Die beiden nachstehenden $needle prüfen in meinem Gästebuch die Plausibilität von e-mail- bzw. Web-Adressen (Das »^« am Anfang bedeutet, analog zum »$« am Ende, daß $haystack mit der gesuchten Kette beginnen muß).

$needle = '/^[a-z0-9_.-]+@[a-z0-9_.-]+.[a-z]{2,4}$/';
$needle = '/^(http://)?[a-z0-9_.-]+.[a-z]{2,4}(/[a-z0-9_./#~?&=-]*)*$/';
Mit Zitat antworten