1
我使用下面的正則表達式的:PHP preg_replace錯誤?
$sEmailHTML = preg_replace ("/<\!-- +(\\[[\"a-zA-Z_]+\\]) +-->/U", "\\1", $sEmailHTML);
$sEmailHTML = preg_replace ("/\\[\"(.+)\"\\]/U", "\\1", $sEmailHTML);
在這樣的文字:
["Text:"]
<!-- ["Click this to authenticate"] --> <!-- [authlink] -->
<!-- ["Dear"] --> <!-- [firstname] --><!-- [":"] -->
和它給了我這樣的結果:(已還更換[authlink]和[名字])
Text:
<!-- Click this to authenticate --> <a href="http://www.mydomain.tld/auth.php?jj=100&aa=SOMEVALUE&end">http://www.mydomain.tld/auth.php?jj=100&aa=SOMEVALUE&end</a>
Dear John<!-- : -->
當它應該給這個:
Text:
Click this to authenticate <a href="http://www.mydomain.tld/auth.php?jj=100&aa=SOMEVALUE&end">http://www.mydomain.tld/auth.php?jj=100&aa=SOMEVALUE&end</a>
Dear John:
我不明白爲什麼它不會刪除所有的HTML註釋標記。 如果我執行兩次註釋去除器正則表達式,它也不起作用。 因此,這可能是一個錯誤,或者我錯過了一些東西。 (PHP 5.2.17)
謝謝。我沒在想。改爲和工作:
$sEmailHTML = preg_replace ("/<!-- +(\\[[a-zA-Z_]+\\]) +-->/U", "\\1", $sEmailHTML);
$sEmailHTML = preg_replace ("/<!-- +(\\[\".+\"\\]) +-->/U", "\\1", $sEmailHTML);
$sEmailHTML = preg_replace ("/\\[\"(.+)\"\\]/U", "\\1", $sEmailHTML);
爲什麼''逃脫?爲什麼有兩個方括號'[['在評論文本塊的開頭? – Jon