Mattes: Timeout bei preg_match

Beitrag lesen

Ich habe das Problem auf den Swiftmailer eingrenzen können; dieser wirft nach dem Versuch, die Mailadresse nach RFC 2822 zu validieren, einen Timeout-Error (Fatal error:  Maximum execution time of 30 seconds exceeded in ...).

Der regex ist knapp 3000 Zeichen lang und sieht so aus:

Kann es sein, dass der preg_match-Vergleich über 30 Sekunden dauert=

Wenn PHP sagt, dass die Funktion länger als eine halbe Minute läuft, dann wird das wohl so sein, angesichts des Umfangs ist das zumindest auch denkbar. Noch weitaus denkbarer ist es, dass das Muster Fehler enthält, denn, mal ehrlich: Hältst du das für übersichtlich? Hättest du Lust, es auf Korrektheit zu prüfen? Sicher nicht.

Hinzu kommt, dass es vergebene Liebesmüh' ist, eine Mailadresse auf mehr zu prüfen, als dass sie ein Zeichen, gefolgt von einem Klammeraffen und hintendran einen Punkt mit was davor und was dahinter enthält. Die meisten Fehler, das sind vergessene Zeichen und Zeichendreher, passen so gut wie immer in die seitens der Technik vorgebenene Schablone.

Der Aufstand, den dieser Mailer da veranstaltet, ist dementsprechend hanebüchen, das ist Technokraten-Schwachsinn. Sowas macht mehr kaputt, als dass es irgendwem hilft.

Sicher ist alleine eine Bestätigungsmail.