带有目标url源代码的file_get_contents的警告消息

时间:2013-03-15 21:30:00

标签: php file-get-contents

我希望通过php从其他域html获取<ul> s innerHTML

$mhraWebUygulamasi =file_get_contents('http://www.mhra.gov.uk/Safetyinformation/Safetywarningsalertsandrecalls/index.htm');
$doc = new DOMDocument();
$doc->loadHTML($mhraWebUygulamasi);
$doc->preserveWhiteSpace=false;

但是为了进一步编码,我收到了这条警告信息。

Warning: DOMDocument::loadHTML(): Unexpected end tag : fragmentinstance in Entity, line: 123 in C:\xampp\htdocs\YeBeSis\mhra.php on line 4

第4行是$doc->loadHTML($mhraWebUygulamasi); 其他行号可能针对urls html代码。 如何轻轻处理目标URL并将其加载到DOM容器?我哪里出错?

2 个答案:

答案 0 :(得分:1)

使用PHP Simple HTML DOM Parser您可以轻松完成,只需下载simple_html_dom.php文件from here并按如下方式使用即可。

include('simple_html_dom.php');
$html = file_get_html('http://www.mhra.gov.uk/Safetyinformation/Safetywarningsalertsandrecalls/index.htm');

然后循环,例如,获取所有ul标签及其内容,您可以使用以下循环

foreach($html->find('ul') as $li){
    echo $li->innertext.'<br />';
}

或者使用此选项仅获取具有班级名称ul

subnav2
foreach($html->find('ul.subnav2') as $li){
    echo $li->innertext.'<br />';
}

输出上述代码(5 li个标签)

  

  • 医疗   设备警报
  • 字段   安全通告(FSNs)
  • 药物   警报
  • 安全   警告和药物信息
  • UK   关于药物安全的公共评估报告
  • 易于使用且选择语法与jQuery类似,请阅读文档以了解更多信息。

    答案 1 :(得分:1)

    你得到的信息只是一个警告;不是错误 - DOM仍在填充。

    但是,它警告您传入的HTML不正确,因此无法保证它生成的DOM完全符合作者的意图。

    但是在很多情况下,它确实无关紧要,所以如果你对此感到满意,请随意忽略警告并随意进行。

    在这种情况下,您需要做的就是禁止显示警告。

    这里将对此进行更详细的讨论:Disable warnings when loading non-well-formed HTML by DomDocument (PHP)

    希望有所帮助。