无法在PHP中使用file()函数访问外部URL
我有以下代码:无法在PHP中使用file()函数访问外部URL,php,apache,file,url,httpforbiddenhandler,Php,Apache,File,Url,Httpforbiddenhandler,我有以下代码: $url = 'http://' . $host . ':' . $port . $params; $results = file( $url ); 我得到以下例外情况: file(http://someurl.com/asd/asd): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden 但我直接在浏览器中访问URL(存储在$URL变量中),它工作得非常好。为什么从PHP访问时出现问题?此错误
$url = 'http://' . $host . ':' . $port . $params;
$results = file( $url );
我得到以下例外情况:
file(http://someurl.com/asd/asd): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
但我直接在浏览器中访问URL(存储在$URL变量中),它工作得非常好。为什么从PHP访问时出现问题?此错误消息:
HTTP/1.0 403禁止
…实际上直接来自您试图访问的服务器。因此,PHP访问外部文件不是问题
相反,更大的问题是说服服务器实际提供文件,就像它提供给web浏览器一样
我要检查几个问题:
如果您确实知道是什么阻止了您访问该文件,那么您应该阅读、流,尤其是,以了解如何从PHP设置缺少的信息。有多种方法可以指定密码、用户代理、引用者头,甚至是您想要的任何随机HTTP头。URL文件访问可能在服务器配置(php.ini)中被禁用-->allow_URL_fopen=Off(更改为On)@0xBAADF00D我想这是另一个错误消息。。。他正在访问的服务器可能是UA字符串或服务器ip出现问题。可能是某种反bot措施完成了@0xBAADF00D,可能它被阻止了如果您不发送用户代理,请尝试
cURL
@Orangepill尝试使用“wtf”用户代理从cURL访问url:cURL-a“kljslkdfjslfjdsklfjsldkf”http://... 查看serveur是否阻止未知的用户代理。@0xBAADF00D我想应该已经转到Awan:)