【发布时间】:2013-07-22 02:42:07
【问题描述】:
我有以下代码:
$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 文件访问可能在服务器配置 (php.ini) 中被禁用 --> allow_url_fopen = Off (更改为 On)
-
@0xBAADF00D 我认为这是一条不同的错误消息...他正在访问的服务器可能与他的 UA 字符串或服务器 IP 有问题。可能是某种反机器人措施
-
作为对@0xBAADF00D 的补充,如果您不发送用户代理,可能会被阻止,请尝试
cURL。 -
@Orangepill 尝试使用 "wtf" 用户代理从 cURL 访问 url: curl -A "kljslkdfjslfjdsklfjsldkf" http://... 以查看服务器是否阻止未知用户代理。
-
@0xBAADF00D 认为应该去 Awan :)
标签: php apache file url httpforbiddenhandler