我正在使用“获取”一个 html 页面并解析的脚本仅显示其中的 .jpg 图像,但我需要进行一些修改,当我这样做时它就失败了......
这有效:
include('simple_html_dom.php');
function getUrlAddress() {
$url = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
return $url .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
$html = file_get_html($url);
foreach($html->find('img[src$=jpg]') as $e)
echo '<img src='.$e->src .'><br>';
但是,有一些问题......我只想显示超过一定尺寸的图像,加上一些网站没有在 img 标签中显示完整的 URL,所以也需要尝试解决这个问题......所以我已经完成了下列的:
include('simple_html_dom.php');
function getUrlAddress() {
$url = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
return $url .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
$html = file_get_html($url);
foreach($html->find('img[src$=jpg]') as $e)
$image = $e->src;
// check to see if src has domain
if (preg_match("/http/", $e->src)) {
$image = $image;
} else {
$parts = explode("/",$url);
$image = $parts['0']."//".$parts[1].$parts[2].$e->src;
}
$size = getimagesize($image);
echo "<br /><br />size is {$size[0]}";
echo '<img src='.$image.'><br>';
这有效,但只返回第一张图像。
在下面的示例链接中有 5 个图像,第一个代码显示但不显示它们,因为 src 没有前导域
有一个更好的方法吗?为什么循环会失败?