PHP Curl 从 VK 保存动态图像

Posted

技术标签:

【中文标题】PHP Curl 从 VK 保存动态图像【英文标题】:PHP Curl Save Dynamic Image From VK 【发布时间】:2016-11-25 04:37:52 【问题描述】:

我正在尝试将图像从 VK 保存到文件夹。但是图像无法正确保存。

我使用的代码是:

// imageFromURL (Save an image from a URL)
function imageFromURL($url,$saveto)
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    $raw=curl_exec($ch);
    curl_close ($ch);
    if(file_exists($saveto))
        unlink($saveto);
    
    $fp = fopen($saveto,'x');
    fwrite($fp, $raw);
    fclose($fp);


imageFromURL('https://vk.com/captcha.php?sid=698254154192&s=1', 'Image/Captcha.png');

我认为它一定不是标准的图像格式?我怎样才能保存它并确保它是带有 CURL 的 png 格式图像?

【问题讨论】:

当我运行它时,图像会正确保存到 Image 文件夹中。然后我就可以打开并查看它。是什么让你认为它没有节省? 这很奇怪,可能是php版本或允许的设置需要更改。 【参考方案1】:

您可以使用exif_imagetype($image) 返回文件的图像类型。 PNG 将返回 3。

此外,您可以在保存前检查:

$mime_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);

并检查您可能正在寻找的 MIME 类型。请注意,这涉及到一些信任,因为您依赖远程服务器正确报告该信息。

【讨论】:

有什么方法可以强制使用 CURL 的图像标题? 我修改了答案,希望对您有所帮助。

以上是关于PHP Curl 从 VK 保存动态图像的主要内容,如果未能解决你的问题,请参考以下文章

动态图处理

PHP 使用cURL从页面下载并保存图像

如何使用 php gd 库加载动态图像,不将其保存在服务器上或使用 src="script.php"?

如何在 django 模板中显示保存的、动态创建的图像?

一种颜色的图片我保存为gif和png格式的图片,为啥颜色会有偏差呢

使用 PHP 从外部公共文件夹提供 css 图像