file_get_contents() 出现 403 禁止错误
在尝试开发网站抓取工具时,开发人员在远程服务器上遇到 403 禁止错误服务器,同时使用 file_get_contents() 在本地计算机上没有任何问题。错误信息表明HTTP请求失败。
经检查,php.ini配置文件中的allow_url_fopen设置已被验证为启用,导致寻找进一步的解决方案。为了深入了解错误原因,建议使用 PHP 的调试机制。
具体来说, $http_response_header 变量可以在每次 file_get_contents() 调用后提供响应 HTTP 标头。此外,ignore_errors 上下文选项可以返回实际响应,可能解释 403 错误。
实际分析表明该错误可能源于缺少所需的 HTTP 标头,例如 Referer 或 User-Agent。为了解决这个问题,可以使用stream_context_create()创建自定义上下文来设置用户代理,模拟真实的浏览器请求。
$context = stream_context_create( array( "http" => array( "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36" ) ) ); echo file_get_contents("www.google.com", false, $context);
此代码示例演示了如何设置用户代理并将请求发送到Google ,展示如何操作标头以进行有效的网页抓取。
以上是为什么我的网站抓取工具在远程服务器上使用'file_get_contents()”返回 403 禁止错误?的详细内容。更多信息请关注PHP中文网其他相关文章!