Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPs fopen是否会遵循301重定向?_Php_Http_Sockets_Redirect_Http Status Code 301 - Fatal编程技术网

PHPs fopen是否会遵循301重定向?

PHPs fopen是否会遵循301重定向?,php,http,sockets,redirect,http-status-code-301,Php,Http,Sockets,Redirect,Http Status Code 301,我们有一段遗留代码,(ab)使用fopen()通过HTTP调用资源: @fopen('http://example.com') 我们希望将example.com移动到另一个主机,然后发送“301永久移动”,但是,我们不能完全确定@fopen()是否会遵循此操作 最初的测试表明它不是。但也许我错过了一些配置 自5.1.0版以来,有一个,它使fopen HTTP包装器遵循位置重定向: 要遵循的最大重定向数。值1或更小表示不遵循重定向 默认值为20 您可能希望显式地设置它,以防您的配置禁用它。从文档

我们有一段遗留代码,(ab)使用
fopen()
通过HTTP调用资源:

@fopen('http://example.com')
我们希望将example.com移动到另一个主机,然后发送“301永久移动”,但是,我们不能完全确定
@fopen()
是否会遵循此操作


最初的测试表明它不是。但也许我错过了一些配置

自5.1.0版以来,有一个,它使fopen HTTP包装器遵循
位置
重定向:

要遵循的最大重定向数。值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);
?>


我预见到了您未来的重构!当然可以这个重定向实际上是重构的第一步:)