我正在尝试解析一个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() 方法解析的元素内的纯文本。在IE浏览器中,我得到一个空的结果。似乎没有找到特定的元素。
例如,如果我这样做:
foreach ($html->find('img') as $img) {
$pre[] = $img->src;
}
print_r($pre);die();
我在Chrome和Internet Explorer中都得到了我想要的结果。(返回字符串中所有图像的 src 属性)
有什么想法吗?谢谢
问题是 Internet Explorer 将颜色的十六进制值(例如:#666666
)替换为它的 rgb 值 ( rgb(102, 102, 102)
)。所以我不得不为IE做一个特例。