使用PHP Simple HTML DOM Parse但无法显示图像。
我不是编码员,我正试图从网站上提取文章和图片。文章很好,但图像没有显示。相反,部分路径显示例如
> //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
以谷歌为例,这是我正在使用的代码:
<?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>';
?>
感谢您的帮助
答案 0 :(得分: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>";
}
答案 1 :(得分:0)
//ssl.gstatic.com/ui/v1/button/search-white.png
是一个相对URI(未指定方案,因此它将使用相同的方案(例如http:或https :)作为它出现的页面。)
像解决任何其他相对URI一样解决它。
我的问题是如何使用原始帖子中的代码显示图像。
您必须输出<img>
标记而不是URI作为纯文本。
答案 2 :(得分:0)
在您对原始网站网址的最后评论后更新我的回答'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>';
}