您好,欢迎访问一九零五行业门户网

php 如何判断二进制流的文件类型

我最近采用下边的方式判断:下载文件,得到文件流->存储到硬盘->判断文件类型。
不过觉得这样显得很多余,能不能在file_get_contents()之后不用存盘便可以判断文件类型?
$image=file_get_contents($url);file_put_contents($imagepath, $image); //将图片流存入服务器图片目录$type=image_type_to_extension(exif_imagetype($imagepath)); //文件类型

回复内容: 我最近采用下边的方式判断:下载文件,得到文件流->存储到硬盘->判断文件类型。
不过觉得这样显得很多余,能不能在file_get_contents()之后不用存盘便可以判断文件类型?
$image=file_get_contents($url);file_put_contents($imagepath, $image); //将图片流存入服务器图片目录$type=image_type_to_extension(exif_imagetype($imagepath)); //文件类型

$image = file_get_contents($url);echo check_image_type($image);function check_image_type($image){ $bits = array( 'jpeg' => \xff\xd8\xff, 'gif' => gif, 'png' => \x89\x50\x4e\x47\x0d\x0a\x1a\x0a, 'bmp' => 'bm', ); foreach ($bits as $type => $bit) { if (substr($image, 0, strlen($bit)) === $bit) { return $type; } } return 'unknown image type';}
$finfo = new finfo(fileinfo_mime_type);var_dump($finfo->file('t.jpg')); // ==> image/jpeg
使用finfo扩展
其它类似信息

推荐信息