Php 如何获取图像';通过URL隐藏扩展名?
我正在尝试将图像从特定网站下载到我自己的服务器Php 如何获取图像';通过URL隐藏扩展名?,php,image,web-scraping,Php,Image,Web Scraping,我正在尝试将图像从特定网站下载到我自己的服务器 .... public function save_one_img($img_url,$image_filename=false,$save_path) { $pathinfo = pathinfo($img_url); $pic_name=$pathinfo['basename']; if ($image_filename) $pic_name = $image_filename.'.'.$pathinfo[
....
public function save_one_img($img_url,$image_filename=false,$save_path)
{
$pathinfo = pathinfo($img_url);
$pic_name=$pathinfo['basename'];
if ($image_filename) $pic_name = $image_filename.'.'.$pathinfo['extension'];
$img_data = @file_get_contents($img_url);
$img_size = file_put_contents($save_path . $pic_name, $img_data);
if ($img_size)
{
echo $img_url . '<span style="color:green;margin-left:80px">success</span><br/>';
} else
{
echo $img_url . '<span style="color:red;margin-left:80px">failed</span><br/>';
}
}
。。。。
公共函数save\u one\u img($img\u url,$image\u filename=false,$save\u path)
{
$pathinfo=pathinfo($img\u url);
$pic_name=$pathinfo['basename'];
如果($image_filename)$pic_name=$image_filename...$pathinfo['extension'];
$img\u data=@file\u get\u contents($img\u url);
$img\u size=文件内容($save\u path.$pic\u name,$img\u data);
如果($img\u尺寸)
{
echo$img_url.“成功
”;
}否则
{
echo$img_url。“失败
”;
}
}
当图像的URL正常时,它工作正常。但当它类似于“”时,代码将无法获得正确的文件扩展名。但当我打开页面并右键单击图像下载它时,我可以看到它是
gif
。因此,在这种情况下,如何在代码中获取扩展名?您可以下载映像并使用来检测映像类型,或者可以在远程主机(从中获取映像的主机)的响应头中读取映像类型。在标题中有一个名为Content Type的属性,您可以从中获取图像的类型
exif_imagetype的示例:
下面是png文件的头响应示例
HTTP/1.1 200 OK
Date: Wed, 15 May 2019 02:42:16 GMT
Server: Apache/2.4.39 (Ubuntu)
Last-Modified: Fri, 22 Mar 2019 17:34:11 GMT
ETag: "19f85-584b2434b434b"
Accept-Ranges: bytes
Content-Length: 106373
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: image/png <---------------
HTTP/1.1200正常
日期:2019年5月15日星期三02:42:16 GMT
服务器:Apache/2.4.39(Ubuntu)
最后修改:2019年3月22日星期五17:34:11 GMT
ETag:“19f85-584b2434b434b”
接受范围:字节
内容长度:106373
保持活动状态:超时=5,最大=100
连接:保持活力
内容类型:image/pngmime\u Content\u Type()
HTTP/1.1 200 OK
Date: Wed, 15 May 2019 02:42:16 GMT
Server: Apache/2.4.39 (Ubuntu)
Last-Modified: Fri, 22 Mar 2019 17:34:11 GMT
ETag: "19f85-584b2434b434b"
Accept-Ranges: bytes
Content-Length: 106373
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: image/png <---------------