2012-11-27 127 views
0

可能重複:
How to parse and process HTML with PHP?PHP的preg_match不給預期的結果

我希望這一個返回(布爾)True或INT(1)

echo var_dump(preg_match('/(<[tT][eE][xX][tT][aA][rR][eE][aA][^<>]*>)(.*?)(<\/[tT][eE][xX][tT][aA][rR][eE][aA]>)/', 
    "<textarea id='field-static_content' name='static_content' class='texteditor' ><p> 
any content<p></textarea>")); 

但我得到int(0)作爲結果。 我嘗試將任何字符串與「<textarea」(非區分大小寫)匹配,後跟除「<」和「>」之外的任何其他字符,然後是「>」,後跟任何其他字符,然後以「</textarea>」結尾區分大小寫

有人知道我的正則表達式模式有什麼問題嗎?

+1

RegEx對解析HTML不可靠。而是使用解析器,如simplehtmldom http://simplehtmldom.sourceforge.net/ –

+1

閱讀:http://stackoverflow.com/questions/3577641/how-to-parse-and-process-html-with-php – Chris

+0

使用'DomDocument '。 –

回答

0

您錯過了/s標誌。您的輸入文本包含換行符,這就是爲什麼.*?不會在默認情況下找到它。

更重要的是,您缺少不區分大小寫的/i標誌。無需編寫[aA][bB] ...

+0

謝謝,這是幫助:) – goFrendiAsgard