我想用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:xampphtdocsYeBeSismhra.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 />';
}
或者使用此命令只获取类名为subnav2
的ul
foreach($html->find('ul.subnav2') as $li){
echo $li->innertext.'<br />';
}
以上代码输出(5个li
标签)
医学Device Alerts 字段安全通知(FSNs) 药品安全警报 药品警告和信息 UK药品安全公众评估报告
它很容易使用,选择语法就像jQuery
,阅读文档了解更多。
你得到的消息只是一个警告;不是错误——DOM仍在被填充。
但是,它警告您传入的HTML是不正确的,因此它不能保证它生成的DOM将完全符合作者的预期。
但在很多情况下,这真的无关紧要,所以如果你觉得没关系,可以忽略警告,不管怎样继续。
在这种情况下,您所需要做的就是禁止显示警告。
使用DomDocument (PHP) 加载格式不正确的HTML时禁用警告希望对你有帮助。