如何从PHP中的任何图像类型的base64字符串中剥离数据:图像部分
发布时间:2020-12-13 13:06:07 所属栏目:PHP教程 来源:网络整理
导读:我目前正在执行以下操作来解码 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_repla
我目前正在执行以下操作来解码
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图像字符串的图像部分?也许通过检测字符串中的第一个逗号? 如果这是一个简单的问题我很抱歉,PHP不是我的强项.提前致谢.
您可以使用正则表达式:
$img = preg_replace('#data:image/[^;]+;base64,#',$s['image']); 如果你要替换的文本是图像中的第一个文本,在正则表达式的开头添加^将使它更快,因为它不会分析整个图像,只是前几个字符: $img = preg_replace('#^data:image/[^;]+;base64,$s['image']); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |