PHP:如何将图像从URL转换为Base64?

2022-08-30 16:47:46

我想将图像从其网址转换为base64。


答案 1

是否要创建数据 URL?你需要一个MIME类型和其他一些额外的信息(参见维基百科)。如果不是这种情况,这将是图像的简单 base64 表示形式:

$b64image = base64_encode(file_get_contents('path/to/image.png'));

相关文档:base64_encode()-functionfile_get_contents()-function


答案 2

我找到了这个问题,寻找类似的解决方案,实际上,我明白这是最初的问题。

我想做同样的事情,但文件在远程服务器中,所以我就是这样做的:

$url = 'http://yoursite.com/image.jpg';
$image = file_get_contents($url);
if ($image !== false){
    return 'data:image/jpg;base64,'.base64_encode($image);

}

因此,此代码来自返回字符串的函数,您可以在 html 中 img 标记的 src 参数内输出返回值。我正在使用smarty作为我的模板库。它可以是这样的:

<img src="<string_returned_by_function>">

请注意对以下内容的显式调用:

if ($image !== false)

这是必需的,因为在某些情况下,file_get_contents可以返回 0 并被强制转换为 false,即使文件读取成功也是如此。实际上,在这种情况下,它不应该发生,但是在获取文件内容时这是一种很好的做法。


推荐