PHPfile_get_contents()函数-用法及示例
PHP文件获取内容函数file_get_contents()是一个非常常见的PHP函数,它可以让我们获取到URL或文件的内容,并将其作为一个字符串返回。下面,我们将介绍file_get_contents()函数的用法及示例。
用法
file_get_contents()函数最基本的用法是只需要传入一个参数,其可以是文件或URL。该函数将会返回被获取到内容的字符串。
语法:
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
参数:
- $filename: 要读取的文件的文件名或 URL 地址。
- $use_include_path: 是否在 include_path 目录中搜索文件。
- $context: 文件操作所需要的特殊上下文。
- $offset: 在开始读取之前设置偏移量。
- $maxlen: 读取的字节数的最大数目。
示例
1、读取本地文件
//读取本地文本文件
$content = file_get_contents('/path/to/file.txt');
这里,我们使用了绝对路径来定义待读取的文件。也可以使用相对路径如./path/to/file.txt。
2、读取远程文件
//读取一个网页的内容
$content = file_get_contents('http://www.example.com/');
file_get_contents()函数同样可以读取远程文件。只需要传入文件的URL即可。
3、读取远程文件时加header
$url = 'http://www.example.com/';
$opt = [
'http'=>[
'method'=>'GET',
'header'=>"Accept-language: zh-CN\r
" .
"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:77.0) Gecko/20100101 Firefox/77.0\r
"
]
];
$context = stream_context_create($opt);
$content = file_get_contents($url, false, $context);
如果要读取远程文件同时需要设置一些http header,那我们需要使用stream_context_create()函数来创建一个上下文,并将其作为参数传递给file_get_contents()函数。
在示例中,我们为一个网络请求添加了Accept-language 和User-Agent header。使用这种方式可以帮助我们达到模拟请求的效果。
4、分段读取
file_get_contents()函数第四个参数可以用来设置要读取的文件字节数的最大数目。
$content = '';
$handle = fopen('/path/to/file.txt', 'r');
if ($handle) {
while ($line = fgets($handle, 4096)) {
$content .= $line;
}
fclose($handle);
}
在这种方式中,我们打开一个文件句柄$handle,使用fgets()函数从处于打开状态的文件句柄中读取每一行。循环读取每一行后,把每一行的内容读入到字符串变量$content中。
最后,我们关闭文件句柄。
总结
file_get_contents()函数为我们提供了读取文件和请求URL的基本方法。可以用一个函数来读取本地和远程文件上的内容,也可以用来模拟HTTP请求。使用此函数要注意,如果要读取较大的文件或远程文件,我们应该尽可能地使用流的方式,以避免在读取过程中出现意外的内存占用问题。
