php检测文件的真实类型

180it 2020-11-10 PM 2349℃ 0条
<?php
/**
 * 检测文件的真实类型
 * @param  string $srcPath 文件路径
 * @return string $realType 文件真实类型
*/

$imgurl = 'https://ae01.alicdn.com/kf/HTB1w5xdS4TpK1RjSZR0762EwXXa7.png';
echo file_type_detect($imgurl);
function file_type_detect($srcPath){
    $types = array(
        6677    => 'bmp',
        7173    => 'gif',
        7368    => 'mp3',
        13780   => 'png',
        255216  => 'jpg',
    );  

    $binary = curl_get($srcPath);
    $bytes = substr($binary, 0, 2); 
    $head = @unpack('C2char', $bytes);
    $typeCode = intval($head['char1'].$head['char2']);
    $realType = isset($types[$typeCode]) ? $types[$typeCode] : $typeCode;
    return $realType;
}
function curl_get($url){
    $ch=curl_init($url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; U; Android 4.4.1; zh-cn; R815T Build/JOP40D) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.5 Mobile Safari/533.1');
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $content=curl_exec($ch);
    curl_close($ch);
    return($content);
}
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php检测文件的真实类型