ホームページ  >  記事  >  バックエンド開発  >  拡張子を使用せずにphpでファイルの種類を正確に判断する方法

拡張子を使用せずにphpでファイルの種類を正確に判断する方法

墨辰丷
墨辰丷オリジナル
2018-05-23 17:18:311574ブラウズ

この記事では、PHP が拡張子を使用せずにファイルの種類を正確に判断する方法を主に紹介します。これには、PHP の finfo_file メソッドと、ファイルの種類を必要とするバイナリ ストリームの関連操作スキルが含まれます。この記事では、PHP の実装とファイルの種類の違いを拡張子によって正確に判断する方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

最初のメソッド

phpによる

finfo_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

: 文字列バッファに関する情報を返しますfinfo_close
: fileinfo リソースを閉じるmime_content_type
: ファイルの MIME Con​​tent-type を検出する (非推奨)

2 番目の方法

バイナリ ストリームを通じてファイルのコンテンツを取得する

$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;
}

上記はコンテンツ全体ですこの記事が皆さんの学習に役立つことを願っています。


関連する推奨事項:

PHP プログラムでのファイル ロック、ミューテックス ロック、読み書きロックの分析_php スキル

PHP プログラミングでプログラムの同時実行性を試すいくつかの方法 Summary_php スキル

PHPLaravelフレームワークのAdminLTEテンプレートを使用してWebサイトのバックエンドinterface_phpスキルを作成する

以上が拡張子を使用せずにphpでファイルの種類を正確に判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。