php 如何检测base64数据是否为图片
时间: 2024-03-23 17:36:03 浏览: 16
你可以使用PHP内置函数`getimagesizefromstring()`来检测base64数据是否为图片。该函数可以从一个字符串中获取图像信息,包括大小和类型等。以下是一个示例代码:
```php
$data = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAA
O9TXL0Y4OHwAAAABJRU5ErkJggg==";
//从base64数据中提取实际数据
$data = str_replace('data:image/png;base64,', '', $data);
$data = str_replace(' ', '+', $data);
//将base64数据解码为二进制数据
$binaryData = base64_decode($data);
//检测二进制数据是否为图片
$imageInfo = getimagesizefromstring($binaryData);
if ($imageInfo !== false) {
echo "该base64数据为图片";
} else {
echo "该base64数据不是图片";
}
```
在上面的代码中,我们首先从base64数据中提取出实际的数据,然后将其解码为二进制数据。接着,使用`getimagesizefromstring()`函数来检测二进制数据是否为图片。如果返回结果不为false,则说明该数据为图片。