• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • finfo_buffer()

    finfo::buffer

    (PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

    返回一个字符串缓冲区的信息

    说明

    过程化风格
    finfo_buffer(resource $finfo,string $string= NULL[,int $options= FILEINFO_NONE[,resource $context= NULL]]): string
    面向对象风格
    publicfinfo::buffer(string $string= NULL[,int $options= FILEINFO_NONE[,resource $context= NULL]]): string

    本函数用来获取字符串中二进制数据的信息。

    参数

    $finfo

    finfo_open()函数返回的 Fileinfo 资源。

    $string

    要检查的文件内容。

    $options

    一个Fileinfo 常量或多个Fileinfo 常量进行逻辑或运算。

    $context

    返回值

    返回$string参数所指定内容的类型描述。发生错误时返回FALSE

    范例

    finfo_buffer()函数例程

    <?php
    $finfo = new finfo(FILEINFO_MIME);
    echo $finfo->buffer($_POST["script"]) . "\n";
    ?>
    

    以上例程的输出类似于:

    application/x-sh; charset=us-ascii
    

    参见

    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).
    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.
    Get only a webpage content type and forget the charset
    <?php
    $file = new finfo(FILEINFO_MIME);
    echo strstr($file->buffer(file_get_contents('http://example.com')),';',true)//Returns something similar to text/html
    ?>
    
    Get only a webpage content type and forget the charset
    <?php
    $file = new finfo(FILEINFO_MIME);
    echo strstr(file_get_contents('http://example.com'),';',true); //Returns something similar to text/html
    ?>
    

    下篇:finfo_close()