In diesem Artikel wird hauptsächlich die Methode für PHP zur genauen Bestimmung des Dateityps ohne Verwendung der Erweiterung vorgestellt. Dabei handelt es sich um die Methode finfo_file in PHP und die damit verbundenen Betriebsfähigkeiten des Binärstreams für Dateitypen
In diesem Artikel wird anhand eines Beispiels beschrieben, wie PHP den Dateityp genau bestimmen kann, ohne die Erweiterung zu verwenden. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:Die erste Methode
Über 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"';
finfo_buffer: Informationen über einen String-Puffer zurückgeben
finfo_close: Dateiinfo-Ressource schließen
mime_content_type:MIME-Inhaltstyp für eine Datei erkennen (veraltet)
Die zweite Methode
Den Dateiinhalt über den Binärstream abrufen$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; }
Das obige ist der detaillierte Inhalt vonSo bestimmen Sie den Dateityp in PHP genau, ohne die Erweiterung zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!