2012-11-27 128 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