欢迎访问宙启技术站
智能推送

PHPfile_get_contents()函数-用法及示例

发布时间:2023-06-26 06:27:28

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-languageUser-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请求。使用此函数要注意,如果要读取较大的文件或远程文件,我们应该尽可能地使用流的方式,以避免在读取过程中出现意外的内存占用问题。