📅  最后修改于: 2023-12-03 15:33:28.919000             🧑  作者: Mango
在 PHP 中,我们可以使用 file_get_contents()
函数来读取一个文件或网页的内容。但是如果该网站进行了重定向,我们无法获取到重定向后的内容。为了解决这个问题,我们需要在 file_get_contents()
中添加一个参数 stream_context_create()
,并在该参数中设置 max_redirects
选项来开启跟随重定向。
以下是一个简单的示例代码,用于演示如何使用 file_get_contents()
跟随重定向:
$url = 'http://www.example.com';
$options = [
'http' => [
'method' => 'GET',
'follow_location' => 1,
'max_redirects' => 10
]
];
$context = stream_context_create($options);
$content = file_get_contents($url, false, $context);
echo $content;
该代码中,我们首先指定了要读取的网页地址 $url
。然后,我们定义了一个数组 $options
,用于设置 file_get_contents()
的参数。在该数组中,我们指定了使用 GET 请求方式,并通过 follow_location
选项来开启跟随重定向。max_redirects
选项用于指定最大的重定向次数,这里我们设置为 10。最后,我们通过调用 stream_context_create()
函数来创建一个流上下文,用于向 file_get_contents()
函数传递参数。
最后,我们直接调用 file_get_contents()
函数,并将流上下文作为第三个参数传递进去。该函数最终会返回重定向后的网页内容,我们将其输出到屏幕上。
在使用 file_get_contents()
函数跟随重定向时,需要注意以下事项:
follow_location
选项,否则无法跟随重定向。https
选项并开启 SSL 验证。