Ref/fileinfo-Phpdoc专题
finfo_buffer
finfo::buffer
返回一个字符串缓冲区的信息
说明
过程化风格
string <span
class="methodname">finfo_buffer ( <span
class="methodparam">resource $finfo ,
string
$string = null [, <span
class="methodparam">int $options<span
class="initializer"> = FILEINFO_NONE [, <span
class="methodparam">resource $context<span
class="initializer"> = null ]] )
面向对象风格
public string
finfo::buffer ( <span
class="methodparam">string $string<span
class="initializer"> = null [, <span
class="methodparam">int $options<span
class="initializer"> = FILEINFO_NONE [, <span
class="methodparam">resource $context<span
class="initializer"> = null ]] )
本函数用来获取字符串中二进制数据的信息。
参数
finfo
finfo_open 函数返回的 Fileinfo 资源。
string
要检查的文件内容。
options
一个 Fileinfo 常量
或多个 Fileinfo 常量
进行逻辑或运算。
context
返回值
返回 string 参数所指定内容的类型描述。 发生错误时返回 false 。
范例
示例 #1 finfo_buffer 函数例程
<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>
以上例程的输出类似于:
application/x-sh; charset=us-ascii
参见
- finfo_file
finfo_close
关闭 fileinfo 资源
说明
bool <span
class="methodname">finfo_close ( <span
class="type">resource $finfo )
关闭 finfo_open 函数所返回的 fileinfo 资源。
参数
finfo
finfo_open 函数所返回的 fileinfo 资源。
返回值
成功时返回 true, 或者在失败时返回 false。
finfo_file
finfo::file
返回一个文件的信息
说明
过程化风格
string <span
class="methodname">finfo_file ( <span
class="type">resource $finfo , <span
class="methodparam">string $file_name<span
class="initializer"> = null [, <span
class="methodparam">int $options<span
class="initializer"> = FILEINFO_NONE [, <span
class="methodparam">resource $context<span
class="initializer"> = null ]] )
面向对象风格
public string
finfo::file ( <span
class="methodparam">string $file_name<span
class="initializer"> = null [, <span
class="methodparam">int $options<span
class="initializer"> = FILEINFO_NONE [, <span
class="methodparam">resource $context<span
class="initializer"> = null ]] )
本函数用来获取一个文件的信息。
参数
finfo
finfo_open 函数所返回的 fileinfo 资源。
file_name
要检查的文件名。
options
一个 Fileinfo 常量
或多个 Fileinfo 常量
进行逻辑或运算。
context
关于 contexts 的更多描述,请参考
Stream 函数。
返回值
返回 file_name 参数指定的文件信息。 发生错误时返回 false 。
范例
示例 #1 finfo_file 例程
<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // 返回 mime 类型
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>
以上例程的输出类似于:
text/html
image/gif
application/vnd.ms-excel
参见
- finfo_buffer
finfo_open
finfo::__construct
创建一个 fileinfo 资源
说明
过程化风格
resource <span
class="methodname">finfo_open ([ <span
class="methodparam">int $options<span
class="initializer"> = FILEINFO_NONE [, <span
class="methodparam">string $magic_file<span
class="initializer"> = null ]] )
面向对象风格 (构造器):
public <span
class="methodname">finfo::__construct ([ <span
class="methodparam">int $options<span
class="initializer"> = FILEINFO_NONE [, <span
class="methodparam">string $magic_file<span
class="initializer"> = null ]] )
本函数打开一个魔数数据库并且返回它的资源。
参数
options
一个 Fileinfo 常量
或多个 Fileinfo 常量
进行逻辑或运算。
magic_file
魔数数据库文件名称, 通常是 /path/to/magic.mime。 如果未指定,则使用
MAGIC 环境变量。 如果未指定此环境变量, 则使用 PHP 绑定的魔数数据库。
传入 null 或者空字符串,等同于使用默认值。
返回值
(仅适用于过程化风格) 如果成功则返回一个表示魔数数据库的资源,
或者在失败时返回 false。
注释
Warning
在 PHP 5.3.11 和 5.4.1 中预期的魔数数据库格式发生了变动, 所以,内置的魔数数据库被更新。 如果使用了外部魔数数据库, 可能会由于格式不同导致读取失败。 同时,一些 mime 类型的文字表示也发生了变化, 例如,PHP 文件的 mime 类型由 “"PHP script text” 变为“PHP script, ASCII text”。
Note:
通常来说,使用 PHP 绑定的魔数数据库(设置
magic_file参数为空, 不设置 MAGIC 环境变量)是最好的选择, 除非你确实需要一个自定义的魔数数据库。
范例
示例 #1 面向对象风格
<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // 返回 mime 类型
/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);
?>
示例 #2 过程化风格
<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // 返回 mime 类型
if (!$finfo) {
echo "Opening fileinfo database failed";
exit();
}
/* 获取指定文件的 mime 类型 */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);
/* 关闭资源 */
finfo_close($finfo);
?>
以上例程会输出:
text/plain; charset=us-ascii
参见
- finfo_close
finfo_set_flags
finfo::set_flags
设置 libmagic 配置选项
说明
过程化风格
bool <span
class="methodname">finfo_set_flags ( <span
class="methodparam">resource $finfo ,
int
$options )
面向对象风格
public bool
finfo::set_flags ( <span
class="methodparam">int $options )
此函数用来设置 Fileinfo 选项。 这些选项也可以在调用 <span class="function">finfo_open 或者其他 Fileinfo 函数时直接指定。
参数
finfo
finfo_open 返回的资源。
options
一个 Fileinfo 常量
或多个 Fileinfo 常量
进行逻辑或运算。
返回值
成功时返回 true, 或者在失败时返回 false。
mime_content_type
检测文件的 MIME 类型
说明
string <span
class="methodname">mime_content_type ( <span
class="methodparam">string $filename
)
返回通过使用 magic.mime 检测到的文件 MIME 类型。
参数
filename
要检测的文件名。
返回值
返回文件的 MIME 内容类型,例如 text/plain 或
application/octet-stream。 或者在失败时返回 false。
错误/异常
失败时抛出E_WARNING警告。
范例
示例 #1 mime_content_type 示例
<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>
以上例程会输出:
image/gif
text/plain
参见
- finfo_file
- finfo_buffer
目录
- finfo_buffer — 返回一个字符串缓冲区的信息
- finfo_close — 关闭 fileinfo 资源
- finfo_file — 返回一个文件的信息
- finfo_open — 创建一个 fileinfo 资源
- finfo_set_flags — 设置 libmagic 配置选项
- mime_content_type — 检测文件的 MIME 类型