我们有一段遗留代码(ab)使用fopen()
通过 HTTP 调用资源:
@fopen('http://example.com')
我们想要将 example.com 移动到另一个主机,然后发送“301 Permanently Moved”,但是,我们不完全确定是否@fopen()
将遵循此。
初步测试表明事实并非如此。但也许我错过了一些配置部分。
从 5.1.0 版本开始,有最大重定向选项 http://www.php.net/manual/en/context.http.php,这使得 fopen HTTP 包装器遵循Location
重定向:
要遵循的最大重定向数。值 1 或更少意味着不遵循任何重定向。
默认为 20。
您可能需要明确设置它,以防您的配置禁用此功能。从文档修改的示例:
<?php
$url = 'http://www.example.com/';
$opts = array(
'http' => array('method' => 'GET',
'max_redirects' => '20')
);
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));
// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)