Camping_RIDER: PHP-Abfrage

Beitrag lesen

Aloha ;)

if  (preg_match('/^$/'|'/^L$/', $query_string))
   {.....}

Was ist die Ursache?

Betrachte den Parameter des Funktionsaufrufs. Unabhängig vom Inhalt der Strings steht da: 'irgendwas'|'irgendwas' - die Funktion preg_match erwartet aber einen String, nicht zwei mit einem Oder-Zeichen dazwischen, mal ganz davon abgesehen, dass die Pipe in PHP für den Bitweise-Oder-Operator steht, also etwas ganz anderes täte als von dir beabsichtigt.

Was du suchst ist eigentlich folgendes: Ein einzelner regulärer Ausdruck, der entweder auf einen leeren String oder auf einen String mit einem einzelnen L matcht (der also so gesehen bis auf das L auch leer ist).

Meiner Ansicht nach solltest du das damit erreichen:

if  (preg_match('/^L?$/', $query_string))
   {.....}

Der Fragezeichen-Operator im Regex ist der Multiplikator für "genau einmal oder keinmal", es wird also auf Leerstring (keinmal L) und auf "L" (einmal L) gematcht.

Tipp: Mir hat was reguläre Ausdrücke angeht regexr.com bereits des Öfteren weitergeholfen, gerade wenn es um kompliziertere Sachen z.B. mit mehrfacher Verschachtelung ging.

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Albers-Zoller
# Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[