gpt4 book ai didi

php - 如何剥离数据 :image part from a base64 string of any image type in PHP

转载 作者:可可西里 更新时间:2023-11-01 12:40:16 24 4
gpt4 key购买 nike

我目前正在执行以下操作以在 PHP 中解码 base64 图像:

   $img = str_replace('data:image/jpeg;base64,', '', $s['image']);
$img = str_replace('data:image/png;base64,', '', $s['image']);
$img = str_replace('data:image/gif;base64,', '', $s['image']);
$img = str_replace('data:image/bmp;base64,', '', $s['image']);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);

正如您在上面看到的,我们接受四种最标准的图像类型(jpeg、png、gif、bmp);

但是,其中一些图像非常大,使用 str_replace 扫描每张图像 4-5 次似乎是一种可怕的浪费,而且效率极低。

有没有一种方法可以可靠地一次性去除 base64 图像字符串的 data:image 部分?也许通过检测字符串中的第一个逗号?

如果这是一个简单的问题,我很抱歉,PHP 不是我的强项。提前致谢。

最佳答案

您可以使用正则表达式:

$img = preg_replace('#data:image/[^;]+;base64,#', '', $s['image']);

如果您要替换的文本是图像中的第一个文本,在正则表达式的开头添加 ^ 会使其更快,因为它不会分析整个图像,只是前几个字符:

$img = preg_replace('#^data:image/[^;]+;base64,#', '', $s['image']);

关于php - 如何剥离数据 :image part from a base64 string of any image type in PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com