从 base64 编码的 src 字符串获取图像类型
我需要什么
我的图像 src 看起来像这样
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA...
如何提取图像类型,即; 从上面给出的src。我使用的是PHP,图像类型也可以是png / gif / jpg。jpeg
我的图像 src 看起来像这样
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA...
如何提取图像类型,即; 从上面给出的src。我使用的是PHP,图像类型也可以是png / gif / jpg。jpeg
好吧,你基本上有两个选择:
可能是更快的方法,因为它只涉及拆分字符串,但它可能是不正确的。像这样:
$data = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA.';
$pos = strpos($data, ';');
$type = explode(':', substr($data, 0, $pos))[1];
使用,它等效于字符串:getimagesize()
$info = getimagesizefromstring(explode(',', base64_decode($data)[1], 2));
// $info['mime']; contains the mimetype
测试这个:
<?php
$str = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA...';
function getB64Type($str) {
// $str should start with 'data:' (= 5 characters long!)
return substr($str, 5, strpos($str, ';')-5);
}
var_dump(getB64Type($str));