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() - 创建资源流上下文