Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的HTML DOM解析器_Php_Html_Dom - Fatal编程技术网

PHP中的HTML DOM解析器

PHP中的HTML DOM解析器,php,html,dom,Php,Html,Dom,使用PHP简单的HTML DOM解析,但无法获取要显示的图像 我不是一个程序员,我试图从网站上获取文章和图片。文章很好,但图像没有显示出来。而是显示部分路径,例如 > //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 DOM解析,但无法获取要显示的图像

我不是一个程序员,我试图从网站上获取文章和图片。文章很好,但图像没有显示出来。而是显示部分路径,例如

> //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>';
?>


感谢您的帮助

//ssl.gstatic.com/ui/v1/button/search white.png
是一个相对URI(未指定方案,因此它将使用与页面中显示的方案相同的方案(例如http:或https:)

像解析任何其他相对URI一样解析它

我的问题是如何使用我的原始帖子中的代码来显示图像

您必须输出一个
标记,而不是以纯文本形式输出URI。

您应该替换

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

foreach($html->find('img')as$element){
$img=str\u replace(数组(//ssl)),数组(“http://ssl“,$element->src);
对于($i=0;$i<5;$i++){
$img=str\u replace(“//nt$i”http://nt$i“,$img);
}
回声“
”; }
在您最后一次发表评论后,使用原始网站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>';
}
include_once“simplehtmldom/simple_html_dom.php”;
$url=”http://frielatvsales.com/QuadAttachments.htm";
$html=file\u get\u html($url);
preg_match('@^(?:http://)?([^/]+)@i',$url,$matches);
$host=$matches[1];
foreach($html->find('h2')作为$e){
回显$e->innertext。“

”; } foreach($html->find('div.jsdisplay')作为$e){ 回显$e->innertext.“
”; } foreach($html->find('img')作为$element){ 回声“src.”/>
; }
PHP中没有此类函数
file\u get\u html()
。你在说什么?@feeela file\u get\u html()来自PHP Simple html DOM ParserAh,你的意思是外部项目而不是PHP核心中的任何东西…将最后一个
echo
更改为:
echo“src”。“\”/>”
'-返回标记,告诉浏览器显示
src
属性中指定的图像。谢谢,但图像没有显示。这是我使用的代码:谢谢你的回复,但不幸的是代码没有工作。如果您还有其他想法,我将不胜感激。您已经在代码顶部添加了simple_html_dom.php类。我已经在我的答案中添加了simple_html_dom.php类。请看一看。你可以通过这个url下载simple_html_dom.php类。我在顶部有这样一个:代码用于文本,但不用于图像,但图像仍然不显示。谢谢,还有其他想法吗?酷,看看如何接受
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>';
}