【发布时间】:2013-10-30 14:54:55
【问题描述】:
我正在尝试解析一个 html 网页。它在 Chrome 中正常工作,但在 Internet Explorer 10 中失败;
这是我的代码:
//the content variable is a string with the html markup
$html = str_get_html($content);
$element = $html->find('div[style="width: 460px; padding-bottom: 20px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #666666;"]', 0);
$tmp = $element->plaintext;
print($tmp);die();
在谷歌浏览器中,我得到了我想要的结果,只是我使用 find() 方法解析的元素内的纯文本。在 Internet Explorer 中,我得到一个空结果。似乎没有找到特定的元素。
如果,例如我这样做:
foreach ($html->find('img') as $img) {
$pre[] = $img->src;
}
print_r($pre);die();
我在 chrome 和 Internet Explorer 中都得到了我想要的结果。 (返回字符串中所有图片的src属性)
有什么想法吗? 谢谢
【问题讨论】:
-
“搞砸了”并不是对问题的一个很好的描述。这里的实际问题是什么?您期望的输出是什么?它在 IE 中有何不同?实际生成的页面有什么不同吗? (使用“查看源代码”检查)。 IE 用什么渲染模式显示它? (使用 F12 开发工具检查)。
-
@Spudley 我正在使用源代码进行检查。我正在使用 $html->find() 方法解析的元素内的纯文本;我没有错误。似乎没有找到特定的元素。
-
那么你在 IE 中得到了什么?你得到错误的价值吗?部分价值?什么都没有?
$content文件来自哪里?它是从浏览器发送的 HTML 文档吗? -
在即我得到一个空的结果。 $content 是一串 html 标记。我尝试将内容放入文件并解析该文件,仍然是同样的事情:Chrome 中的结果很好,Ie 中什么都没有...
-
$content 是通过 Ajax base_64 编码的。我解码字符串并解析它。我在 Chrome 上工作,机器人在 IE 中失败。
标签: php simple-html-dom domparser