Nette Regular Expressions:
Code:
preg_match("/^(Subject:[color=#ff0000](.*?)(?:\r\n)[/color]+?)?(Charset:(.*?)(?:\r\n)+?)?(.*?)$/is", $this->msg, $match);
preg_match("/^(Subject:[color=#ff0000](.*?)[\r\n][/color]+?)?(Charset:(.*?)[\r\n]+?)?(.*?)$/is", $this->msg, $match);
Ich bin nicht wirklich dingfest mit den Regular Expressions, aber folgender Unterschied wird gemacht.
Variante 1: (.*?)(?:\r\n)
/^ - Der Text fängt an mit
Subject: geht weiter mit X beliebigen Zeichen ausser Zeilenumbruch
.* und geht weiter mit einem beliebigen Zeichen
? und noch einem beliebigen Zeichen
? und einem Doppelpunkt
: gefolgt von einem Zeilenumbruch
\r\n und mindestes
+ einem weiteren beliebigen Zeichen
?
--> Kurz, die Zeile müsste folgenden Aufbau treffen (Ein Doppelpunkt zuviel):
Subject:yyyyy:\r\ny
Variante 2: (.*?)[\r\n]
/^ - Der Text fängt an mit
Subject: geht weiter mit X beliebigen Zeichen ausser Zeilenumbruch
.* und wird durch einen Zeilenumbruch (#13 od #10)
\r\nabgeschlossen - halt eine normalen Subject Line.
--> Kurz, die Zeile müsste folgenden Aufbau treffen:
Subject:yyyyy:\r\n