0

HTML Webページを解析しようとしています。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();

Google Chrome では、必要な結果が得られます。単に、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 が色の 16 進値 (例: #666666) を RGB 値 ( rgb(102, 102, 102)) に置き換えることです。そのため、IE の特別なケースを作成する必要がありました。

于 2014-01-20T16:01:03.543 に答える