関数はfinfo_*
ファイルに関する情報を返します。最も興味深い機能は
string finfo_file(resource $finfo, string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]])
最初のパラメーターはリソースです。これは、ファイルに関して返される情報だけです。私の場合、が必要なので、次の関数FILEINFO_MIME_TYPE
を使用します。finfo_open()
resource finfo_open([int $options = FILEINFO_NONE [, string $magic_file = NULL ]])
そして、
$a = finfo_open(FILEINFO_MIME_TYPE)
echo finfo_file($a,$fileatt['tmp_name']);
アップロードしたファイルのmimeタイプを取得すると、すべて正常に機能します
ただし、2つの質問:
の3番目の(オプションの)パラメーター
finfo_file
はですが、これは;int $options = FILEINFO_NONE
の最初のオプションと同じです。の1番目のパラメーターのリソースfinfo_open
の一部として必要なため、同じ関数のオプションの()パラメーターでもあるのはなぜですか?finfo_file
int
第二に、リソースと関数名という用語は
finfo_open
かなり紛らわしいようです。mysql_*
関数では、リソースはクエリの結果であり、かなり複雑なオブジェクトであると理解できます。ただし、ここでのリソースは単なる文字列です。なぜPHPは、見た目よりも複雑に見えるのでしょうか。同様に、通常、ファイルが操作されており、使用する必要のある関数の1つに名前にopenという単語が含まれている場所では、最初は(とにかく)これがファイルストリームを開いたり開始したりする関数であることを意味します。ここでは、ファイルから必要な情報を指定するために使用されます。ここでこれらの用語の奇妙な歴史的理由はありますか?