此函数从php4.3开始内置。
file_get_contents() 把整个文件读入一个字符串中。
该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。
可以使用它进行:
- 获取本地文件
- 进行http请求(需开启了fopen函数,默认开启)
- http文件上传
基本语法
string file_get_contents(path,include_path,context,start,max_length)
参数 | 类型 | 描述 |
---|---|---|
path | string | 必需。规定要读取的文件,或者url。 |
include_path | int | 可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 ‘1’。 如果开启了严格类型,使用true代替 |
context | 文本数据流 | 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。 |
offset | int | 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。 从php7.1开始支持负数,表示尾部偏移 |
max_length | int | 可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。 |
获取本地文件
以字符串形式返回某个资源文件内容
<?php
// 如果开启了严格类型,例如 declare(strict_types=1);
$file = file_get_contents('./people.txt', true);
// 否则就这样写
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>
发送http请求
文件名的位置,可以使用url,就表示发送http请求
默认是get请求且其他参数默认,此时我们可以创建“文本数据流”形式的参数,里面写入一些http请求参数,比如请求头,请求方式等
上传文件
上传文件也是基于http请求,仅需要在请求中,添加一个空行,通常是表现为2个连续的\r\n,然后添加body
注意,对于http1.1来说,需要判断body长度以检测是否发送完毕,所以上传文件时,务必在header中添加Content-Length
<?php
$data = array('foo' => 'bar');
$data = "abc"; // 要上传的文件数据
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencodedrn\r\n'. 'Content-Length: ' . strlen($data) . '\r\n'.'\r\n',
'content' => $data));
$context = stream_context_create($opts);
$html = file_get_contents('https://www.52dixiaowo.com', false, $context);
echo $html;
?>
本篇完,还有疑问?留下评论吧