如何使用 PHP 从网站保存图像

Posted

技术标签:

【中文标题】如何使用 PHP 从网站保存图像【英文标题】:How to save an image from website using PHP 【发布时间】:2017-05-02 01:12:54 【问题描述】:

所以我找到了一个我想从中下载图片的页面的完美示例,这恰好是http://www.habbo.com/habbo-imaging/avatarimage?figure=ch-215-110.hd-180-7.lg-275-110.hr-893-61&direction=3&head_direction=3&headonly=1&gesture=sml&size=1

现在,如果您要在桌面上保存图像,它会读取为 PNG 文件,虽然我正在尝试使用 php 保存它,但我希望它保存为 GIF。

到目前为止我所做的是:

$ch = curl_init('https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125&direction=3&head_direction=3&headonly=1&gesture=sml&size=1');
$fp = fopen('game/c_images/badges/' . $badge_id . '.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

我设法使权限正常工作并保存了图像,但它只保存了文件名并且照片不存在。所以我猜这与我将 PNG 文件保存为 GIF 有关,肯定有我遗漏的东西。

【问题讨论】:

尝试复制('habbo.com/habbo-imaging/…', 'game/c_images/badges/' . $badge_id . '.gif'); 而不是整个脚本@RahulMeshram ? 使用 copy() 结果: 警告:复制(habbo.com/habbo-imaging/…):打开流失败:HTTP 请求失败! HTTP/1.1 @copy('habbo.com/habbo-imaging/…' . $badge_id . '.gif');你能检查一下吗?检查协议,我得到 https 【参考方案1】:

是的,您可以使用 html dom 保存图像。 喜欢使用

   `$new_image_name = '2018_'.mt_rand();
    $base_url = 'https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125&direction=3&head_direction=3&headonly=1&gesture=sml&size=1';
    $img = "./image_path/$new_image_name.jpg";
    file_put_contents($img,file($base_url));
    $local_image_url = "http://example.org/test/path_to_image/$new_image_name.jpg";`

【讨论】:

以上是关于如何使用 PHP 从网站保存图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 保存随机图像

如何将 html 表格保存为图像以供客户保存在他们的计算机上

如何使用 PHP 从图像中提取文本

从 PHP URL 保存图像

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

使用 php 保存裁剪的图像