PHP file_get_contents 文件系统函数

  • 定义和用法

    file_get_contents - 将整个文件读入一个字符串
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
    5.1.0 添加了offset和maxlen参数。
    5.0.0 添加了上下文支持。
  • 语法

    file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )   
    
    file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。 file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。
    如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。
  • 参数

    参数 必需的 描述
    filename 要读取的文件的名称。
    use_include_path 从PHP 5开始,FILE_USE_INCLUDE_PATH常量可用于触发包含路径搜索。
    context 使用stream_context_create() 创建的有效上下文资源。 如果您不需要自定义context,可以用NULL来忽略。
    offset 从原始流开始读取的偏移量。 远程文件不支持搜索(偏移)。 尝试在非本地文件上查找可能会产生较小的偏移量,但这是无法预测的,因为它可以在缓冲流上运行。
    maxlen 读取的最大数据长度。 默认为读取直到到达文件末尾。 注意,此参数应用于过滤器处理的流。
  • 返回值

    该函数返回读取的数据,或者在失败时返回FALSE。
    如果maxlength小于零,或者在流中查找到指定的偏移量失败,则会生成E_WARNING级错误。
    注意: 此函数可安全用于二进制对象。
    提示:如已启用fopen 包装器,在此函数中, URL 可作为文件名。关于如何指定文件名详见 fopen()。各种 wapper 的不同功能请参见支持的协议和封装协议,注意其用法及其可提供的预定义变量。
    注意: 使用 SSL 时,Microsoft IIS 会违反协议不发送close_notify标记就关闭连接。PHP 会在到达数据尾端时报告“SSL: Fatal Protocol Error”。 要解决此问题,error_reporting 应设定为降低级别至不包含警告。 PHP 4.3.7 及更高版本可以在使用 https:// 包装器打开流时检测出有问题的 IIS 服务器软件 并抑制警告。在使用 fsockopen() 创建 ssl:// 套接字时, 开发者需检测并抑制此警告。
  • 示例

    <?php
    $homepage = file_get_contents('http://www.example.com/');
    echo $homepage;
    
    // <= PHP 5
    $file = file_get_contents('./people.txt', true);
    // > PHP 5
    $file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
    
    ?>
    
  • 相关函数

    file() - 把整个文件读入一个数组中
    fgets() - 从文件指针中读取一行
    fread() - 读取文件(可安全用于二进制文件)
    readfile() - 输出文件
    file_put_contents() - 将一个字符串写入文件
    stream_get_contents() - 读取资源流到一个字符串
    stream_context_create() - 创建资源流上下文