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


Warning message of file_get_contents with target url sourcecode

我想用php从另一个域名获得<ul>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);其他行号可能针对url html代码。如何轻轻处理目标URL,并将其加载到DOM容器?我哪里做错了?

使用PHP简单的HTML DOM解析器可以很容易地做到这一点,只需从这里下载simple_html_dom.php文件并按如下方式使用。

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 />';
}

或者使用此命令只获取类名为subnav2ul

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

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

  • 医学Device Alerts
  • 字段安全通知(FSNs)
  • 药品安全警报
  • 药品警告和信息
  • UK药品安全公众评估报告
  • 它很容易使用,选择语法就像jQuery,阅读文档了解更多。

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

    但是,它警告您传入的HTML是不正确的,因此它不能保证它生成的DOM将完全符合作者的预期。

    但在很多情况下,这真的无关紧要,所以如果你觉得没关系,可以忽略警告,不管怎样继续。

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

    使用DomDocument (PHP) 加载格式不正确的HTML时禁用警告

    希望对你有帮助。