1

PHP Simple HTML DOM Parse を使用していますが、表示する画像を取得できません。

私はコーダーではなく、Web サイトから記事や画像を取得しようとしています。記事は問題ありませんが、画像が表示されません。代わりにパスの一部が表示されます。

> //ssl.gstatic.com/ui/v1/button/search-white.png
> //ssl.gstatic.com/ui/v1/button/search-white.png
> //ssl.gstatic.com/ui/v1/icons/common/settings.png

例としてGoogleを使用すると、私が使用しているコードは次のとおりです。

<?php 
$html = file_get_html('https://news.google.com/nwshp?hl=en&tab=in');  

foreach($html->find('h2') as $e) 
     echo $e->innertext . '<br><br>';  

foreach($html->find('div.jsdisplay') as $e) 
     echo $e->innertext . '<br>'; 

foreach($html->find('img') as $element) 
     echo $element->src . '<br>';
?>

助けてくれてありがとう

4

3 に答える 3

2

交換する必要があります

foreach($html->find('img') as $element)
    echo $element->src . '<br>';

foreach ( $html->find('img') as $element ) {
    $img = str_replace(array("//ssl"), array("http://ssl"), $element->src);
    for($i = 0; $i < 5; $i ++) {
        $img = str_replace("//nt$i", "http://nt$i",$img);
    }
    echo "<img src=\"$img\"  /> <br>";
}
于 2012-10-15T16:48:21.650 に答える
0

//ssl.gstatic.com/ui/v1/button/search-white.png相対 URI です (スキームは指定されていないため、表示されるページと同じスキーム (http: または https: など) が使用されます)。

他の相対 URI と同様に解決します。

私の質問は、元の投稿のコードを使用して画像を表示する方法です。

<img>URI の代わりにタグをプレーン テキストとして出力する必要があります。

于 2012-10-15T16:43:57.590 に答える
0

最後のコメントの後に、元のサイト URL 'http://frielatvsales.com/QuadAttachments.htm'で回答を更新してください

以下のコードを試してください。

include_once "simplehtmldom/simple_html_dom.php";


$url = "http://frielatvsales.com/QuadAttachments.htm";

$html = file_get_html($url); 

preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);

$host = $matches[1];

foreach($html->find('h2') as $e) {

echo $e->innertext . '<br><br>';  
}

foreach($html->find('div.jsdisplay') as $e) {

echo $e->innertext . '<br>'; 

}

foreach($html->find('img') as $element) {

echo '<img src=http://'.$host.'/'.$element->src . ' /><br>';
}
于 2012-10-15T16:50:42.300 に答える