Cet article présente principalement la méthode permettant à PHP de déterminer avec précision le type de fichier sans utiliser l'extension. Il implique la méthode finfo_file en PHP et les compétences opérationnelles associées du flux binaire pour les types de fichiers. Les amis dans le besoin peuvent se référer à
.Cet article L'exemple décrit comment PHP peut déterminer avec précision le type de fichier sans utiliser l'extension. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
La première méthode
via phpfinfo_file()
$handle=finfo_open(FILEINFO_MIME_TYPE);//This function opens a magic database and returns its resource. $fileInfo=finfo_file($handle,'./test.txt');// Return information about a file finfo_close($handle); print_r($fileInfo); echo '==========="\n"';
Aussi
finfo_buffer : renvoie des informations sur un tampon de chaîne
finfo_close : ferme la ressource fileinfo
mime_content_type : Détecter le type de contenu MIME pour un fichier (obsolète)
Deuxième méthode
Obtenir le contenu du fichier via un flux binaire
$fp=fopen('test.txt','r')///实际是image/png $bin = fread($fp, 2); //只读2字节 fclose($fp); $str_info = @unpack(“C2chars”, $bin);//Unpack data from binary string $type_code = intval($str_info['chars1'].$str_info['chars2']);// Get the integer value of a variable $file_type = ”; switch ($type_code) { case 7790: $file_type = 'exe'; break; case 7784: $file_type = 'midi'; break; case 8075: $file_type = 'zip'; break; case 8297: $file_type = 'rar'; break; case 255216: $file_type = 'jpg'; break; case 7173: $file_type = 'gif'; break; case 6677: $file_type = 'bmp'; break; case 13780: $file_type = 'png'; break; default: $file_type = 'unknown'; break; }
Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!