0

我正在尝试解析 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 属性)

有什么想法吗?谢谢

4

1 回答 1

0

问题是 Internet Explorer 将颜色的十六进制值(例如:)替换#666666为它的 rgb 值(rgb(102, 102, 102))。所以我不得不为 IE 做一个特例。

于 2014-01-20T16:01:03.543 回答