file_get_contents()

1. 定义

与函数file()类似,但是该函数是将文件整个(一次性)写入一个字符串,而不是数组。 成功时返回读入的字符串,失败则返回FALSE。

2. 语法

file_get_contents ( string $filepath [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] ) : string

3. 参数说明

参数 可选性 数据类型 描述
$filepath 必需 字符串 文件路径,或者URL地址
$use_include_path 可选 布尔值 默认为false,表示是否在include路径中查找内容
$context 可选 资源类型 资源流上下文
$offset 可选 整型 默认值为-1。在资源流中,读取内容的偏移量(从哪个位置开始读取),不支持远程文件,只作用于缓冲流
$maxlen 可选 读取数据的最大长度,默认读取全部内容

4. 示例

<?php

// file_get_contents()
// 将文件整个(一次性)写入一个字符串

echo '获取本地文件的内容:',"\n";
$str = file_get_contents(__FILE__);
echo $str;
/* 输出:
(本文件的所有内容)
*/

echo PHP_EOL,'获取网页的内容:',"\n";
$html = file_get_contents('https://www.jisuapi.com/about/');// 如果URL中有特殊字符,需要先使用函数`urlencode()`进行编码
echo $html;
/* 
(网页 https://www.jisuapi.com/about/ 的源代码)
*/

/* 下面代码需要在浏览器中执行(控制台无法正常输出图片)
ob_start();
echo PHP_EOL,'读取二进制文件:',"\n";
ob_end_clean();
header('Content-type:image/png');
echo file_get_contents('https://www.jisuapi.com/upload/image/201904/09071407_10238.jpg?v=20160624');
 */

5. 延展阅读

  • file():将文件读入数组。返回以文件行号为索引的数组
  • fgets():从文件指针处读取一行字符,直到遇到换行符、文件末尾或者函数参数列表中指定的长度($length - 1)后停止
  • fread():读取指定长度的通过fopen()函数打开的文件内容
  • readfile():该函数将读入一个文件并将其内容写入到输出缓冲(会立即输出)
  • file_put_contents():将一个字符串写入文件