【发布时间】:2011-10-17 07:33:34
【问题描述】:
我对检索远程页面标题的模式有一点问题,而相同的模式给出的结果是这里的示例。
preg_match_all('|<title>(.*)</title>|U',$this->data,$title);
用于其他 url 并给出结果。 以下返回空数组
preg_match_all('|<title>(.*)</title>|U', $valD, $title);
谁能告诉我这些行有什么问题。
其中 $this->data 和 $valD 保存了不同服务器的两个不同 url 的内容。
请帮助我。我试图解决它,但我没有解决它。 所以我要求你们都告诉我我在这方面的错误。
谢谢。
【问题讨论】:
-
看看this question。使用 HTML 解析器将文档转换为 DOM,然后使用 DOM 遍历方法或 XPath。
-
您是否将
$title初始化为一个空数组?您是否打开了错误报告 (error_reporting(E_ALL | E_NOTICE))? -
问题一定是您的正则表达式与一个站点不匹配 - 您能否发布不匹配的 HTML 的 sn-p,其中包含该页面的
标记?跨度> -
用正则表达式解析 HTML 很脆弱。除非您对远程页面有绝对控制权并且仅对不能递归嵌套的元素,否则不要这样做。