不幸的是,我的 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 函数的最大秒数选项。
在此处查看其他选项。