由于 .htaccess 文件中定义了热链接保护,它不显示数据。您需要作为客户端获取数据。如果您将用户代理的 HTTP 标头信息读取内容并保存到文件,我尝试过您可以使用 CURL。
在我的解决方案中,您的问题已解决。
注意:请注意远程服务器上在标头中使用的文件类型,有一个示例 GIF 文件image/gif
,因此您可以为 PNG 放置另一个文件类型示例。
可行的解决方案示例:
error_reporting(E_ALL);
ini_set('display_errors', '1');
$url = "http://dm.victoriassecret.com/product/428x571/V360249.jpg";
function getimg($url) {
$headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';
$headers[] = 'Connection: Keep-Alive';
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$user_agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, $user_agent);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($process);
curl_close($process);
return $return;
}
$imgurl = $url;
$imagename= basename($imgurl);
if(file_exists($imagename)){continue;}
$image = getimg($imgurl);
file_put_contents($imagename,$image);
注意:如果您在 Linux 文件系统上,请确保根文件夹是可写的 (CHMOD),否则不会将文件保存在路径中。
所以你在谈论 EXIF 数据,CURL 下载的图像如何与我用 md5sum 检查 victoriasecret 服务器上的原始图像和使用 CURL 下载的原始图像相同。但是,结果是相同的,相同的,因此您可以抓取和分析下载的数据以备将来使用……如果不再需要,则删除。
在 Linux 平台上,您可以使用md5sum通过 md5 结果的总和来测试相同的文件:
md5sum V360249.jpg V360249_original.jpg
893a47cbf0b4fbe4d1e49d9d4480b31d V360249.jpg
893a47cbf0b4fbe4d1e49d9d4480b31d V360249_original.jpg
结果相同,您可以确定 exif_imagetype 信息正确且相同。