Maison  >  Article  >  développement back-end  >  Comment déterminer avec précision le type de fichier en php sans utiliser l'extension

Comment déterminer avec précision le type de fichier en php sans utiliser l'extension

墨辰丷
墨辰丷original
2018-05-23 17:18:311585parcourir

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 :

PHP Analyse des astuces pour l'utilisation des verrous de fichiers, des verrous mutex et des verrous en lecture-écriture dans les programmes _php skills

PHPUn résumé de plusieurs façons d'essayer la simultanéité des programmes dans les compétences de programmation_php

Utilisation du modèle AdminLTE dans le framework Laravel de PHP pour rédiger les conseils de l'interface backend du site Web_php

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn