Antwort an „Camping_RIDER“ verfassen

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:[
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen