finfo_buffer
finfo::buffer
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)
finfo_buffer -- finfo::buffer — 文字列バッファの情報を返す
説明
手続き型
finfo_buffer(
finfo
string
int
?resource
): string|false
finfo
$finfo
,string
$string
,int
$flags
= FILEINFO_NONE
,?resource
$context
= null
): string|false
オブジェクト指向型
public finfo::buffer(string
$string
, int $flags
= FILEINFO_NONE
, ?resource $context
= null
): string|falseこの関数は、バイナリデータの情報を文字列形式で返すために使用します。
パラメータ
finfo
-
finfo_open() が返す、finfo クラスのインスタンス。
string
-
調べるファイルの内容。
flags
-
ひとつあるいは複数のFileinfo 定数の組み合わせ。
context
-
戻り値
string
のテキスト表現、あるいはエラーが発生した場合に
false
を返します。
変更履歴
バージョン | 説明 |
---|---|
8.1.0 |
引数 finfo は、finfo
クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、リソース を期待していました。
|
8.0.0 |
context は、nullable になりました。
|
例
例1 finfo_buffer() の例
<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>
上の例の出力は、 たとえば以下のようになります。
application/x-sh; charset=us-ascii
+add a note
User Contributed Notes 2 notes
contact at ingnu dot fr ¶
13 years ago
You can easily check mime type of an internet resource using this code :
<?php
function getUrlMimeType($url) {
$buffer = file_get_contents($url);
$finfo = new finfo(FILEINFO_MIME_TYPE);
return $finfo->buffer($buffer);
}
?>
I'm using it to detect if an url given by a user is a HTML page (so I do some stuff with the HTML) or a file on Internet (so I show an icon accordingly to the mime type).
nimasdj [AT] yahoo [DOT] com ¶
9 years ago
You should never rely on finfo::buffer to get the MimeType of a file, you must always save the file physically or temporariliy and use finfo_open to get MimeType. I tested it with an excell file, with buffer it says octet-stream that is not valid, with finfo_open it says ms-excell as correct.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google