Wie erhalte ich ein ungültiges preg_match-Muster?

8

Ich schreibe ein PHP-Skript, das ein reguläres Ausdrucksmuster vom Benutzer akzeptiert, das von preg_match () verwendet wird. Wie kann ich überprüfen, ob das Muster gültig ist?

    
Liam 14.09.2010, 15:39
quelle

6 Antworten

5

Teste es einfach. preg_match() gibt FALSE zurück, wenn das Muster nicht gültig ist.

  

Rückgabewerte: preg_match () gibt zurück   Die Häufigkeit, mit der das Muster übereinstimmt.    Das wird entweder 0 mal sein (keine Übereinstimmung)   oder 1 mal, weil preg_match () wird   Nach der ersten Übereinstimmung die Suche beenden.   preg_match_all () dagegen wird   fahre fort, bis es das Ende erreicht   Gegenstand. preg_match () gibt FALSE if zurück   Ein Fehler ist aufgetreten.

    
Lekensteyn 14.09.2010, 15:41
quelle
8

Gemäß den Dokumenten ,

  

preg_match () gibt FALSE zurück, wenn ein Fehler aufgetreten ist.

Das Problem ist, dass es auch eine Warnung ausgibt.

Eine Möglichkeit, dies zu umgehen, besteht darin, die Ausgabe der Fehlernachricht zu unterdrücken, den Rückgabewert abzufangen und den Fehler mit error_get_last() auszugeben, wenn dieser falsch war.

Etwas wie

%Vor%

Sie benötigen das Bit für die Fehlerberichterstattung in einer Produktionsumgebung möglicherweise nicht - es hängt von Ihrer Konfiguration ab.

    
Pekka 웃 14.09.2010 15:42
quelle
0
%Vor%     
pltvs 14.09.2010 15:43
quelle
0

Ich dachte, ich hätte eine Methode dafür in MRE gesehen; Es stellt sich heraus, dass es einer war, den Friedl selbst geschrieben hat. Hier ist der Eintrag .

    
Alan Moore 14.09.2010 19:04
quelle
0

Sie können preg_last_error () verwenden, um Antworten zu erhalten. Detailseite:

Ссылка

Danke!

    
Vijay 22.11.2016 17:28
quelle
-1

Verwenden Sie nicht @, verwenden Sie den umgekehrten Schrägstrich vor preg_match , um die Ausnahme in neueren Versionen von PHP (5.3+?) zu werfen.

%Vor%     
Habeeb Perwad 25.11.2016 12:07
quelle

Tags und Links