我希望通过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容器?我哪里出错?
答案 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)
希望有所帮助。