不幸的是,我的 csvarray 的其他 URL 没有得到处理,因为脚本在此 URL 之后停止,并出现重定向问题。
您的脚本不会因为file_get_contents() redirection limit reached
错误而停止。file_get_contents()
触发E_WARNING
非致命错误并且不会停止脚本。
我的猜测是您的脚本由于最长执行时间限制或任何其他错误而停止。把你ini_set('display_errors', true);
的error_reporting(-1);
电话放在文件的开头。
我怎样才能忽略此警告并继续下一个网址?
1.最简单/无用的解决方案是忽略带有@
前缀的错误。
$html = @file_get_contents('http://bit.ly/6wgJO');
file_get_contents()
2.您可以使用第三个参数$context
(上下文选项和参数)增加/减少最大重定向:
$context = stream_context_create(['http' => ['max_redirects' => 50]]);
$html = @file_get_contents('http://bit.ly/6wgJO', false, $context);
3.隐藏错误的其他解决方案是ignore_errors
在上下文选项中:
$context = stream_context_create(['http' => ['max_redirects' => 0, 'ignore_errors' => true]]);
$html = file_get_contents('http://bit.ly/6wgJO', false, $context);
4.使用卷曲。
- 你可以用 cURL 变魔术。
- 将选项设置
CURLOPT_FOLLOWLOCATION
为true
或false
如果您希望遵循重定向。
- 您甚至可以设置
CURLOPT_MAXREDIRS
要遵循的最大重定向数量的选项。
- 设置
CURLOPT_TIMEOUT
允许执行 cURL 函数的最大秒数选项。
在此处查看其他选项。