Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php文件\u获取\u内容时拒绝访问错误_Php_File Get Contents_Access Denied - Fatal编程技术网

使用php文件\u获取\u内容时拒绝访问错误

使用php文件\u获取\u内容时拒绝访问错误,php,file-get-contents,access-denied,Php,File Get Contents,Access Denied,我正在使用php获取网页。 当我在本地主机上执行此操作时,一切正常。 但当我从共享主机执行此操作时,我会收到以下错误消息: 错误 访问被拒绝 安全策略拒绝访问 网络的安全策略阻止此时允许您的请求。如果您觉得这不正确,请与管理员联系 这是我得到的头球 array(4) { [0]=> string(22) "HTTP/1.0 403 Forbidden" [1]=> string(23) "Content-Type: text/html" [2]=> string(17) "C

我正在使用php获取网页。
当我在本地主机上执行此操作时,一切正常。
但当我从共享主机执行此操作时,我会收到以下错误消息:

错误
访问被拒绝
安全策略拒绝访问
网络的安全策略阻止此时允许您的请求。如果您觉得这不正确,请与管理员联系

这是我得到的头球

array(4) { [0]=> string(22) "HTTP/1.0 403 Forbidden" [1]=> string(23) 
"Content-Type: text/html" [2]=> string(17) "Connection: close" [3]=> string(19) 
"Content-Length: 353" }
代码很简单

$page = file_get_contents('http://www.somedomain.com/');
如果我尝试当前页面,它会工作

 $page = file_get_contents('http://stackoverflow.com/questions/10565054/error-access-denied-when-using-php-file-get-content');

有什么想法吗

以便web服务器检查浏览器并拒绝您的连接。您应该尝试fsock函数。

以便web服务器检查浏览器并拒绝您的连接。您应该尝试fsock函数。

远程Web服务器拒绝您的请求。不知道为什么它会拒绝你。可能是服务器配置为拒绝包含共享主机所在位置的IP范围。可能是服务器需要某些头信息(如主机条目、某个用户\代理或其他信息)。请尝试设置一些HTTP上下文内容以安抚您试图联系的服务器。下面是本页中的一个示例


如果可以从浏览器访问目标,请尝试复制浏览器发送的所有标题。大多数浏览器都有某种插件,可以准确显示请求的标题。

远程Web服务器拒绝了您的请求。不知道为什么它会拒绝你。可能是服务器配置为拒绝包含共享主机所在位置的IP范围。可能是服务器需要某些头信息(如主机条目、某个用户\代理或其他信息)。请尝试设置一些HTTP上下文内容以安抚您试图联系的服务器。下面是本页中的一个示例


如果可以从浏览器访问目标,请尝试复制浏览器发送的所有标题。大多数浏览器都有一些插件,可以准确地显示请求的标题。

您的共享主机是否具有相同的php设置和启用的fopen url包装器?当我从另一个域读取时,它会工作检查您的共享主机中是否禁用了
allow\u url\u fopen
,我猜这是导致问题的原因。它不是返回false,而是返回一个有效的HTTP响应;它实际上在工作。问题是Web服务器返回的是403禁止。我们需要找出原因。你能发一些代码吗?我很好奇你是否在这个文件获取内容调用中设置了上下文。你的共享主机是否有相同的php设置和启用的fopen url包装器?当我从另一个域读取时,它工作检查你的共享主机中是否禁用了
allow\u url\u fopen
,我猜这是导致问题的原因。它没有返回false,它正在返回一个有效的HTTP响应;它实际上在工作。问题是Web服务器返回的是403禁止。我们需要找出原因。你能发一些代码吗?我很好奇你是否在文件内容调用中设置了任何上下文。我尝试了这个,但没有帮助,我在VPS中尝试了,没有设置任何标题,它成功了,我猜我的共享主机ip在我试图读取的域中被拒绝…或者有一个代理妨碍了你到达你的目的地。我尝试了这个,但没有帮助,我尝试了从VPS没有设置任何头,它工作了,我猜我的共享主机ip在我试图读取的域中被拒绝了……或者有一个代理妨碍了你到达目的地。
function file_get_contents_utf8($fn) { 
    $opts = array( 
        'http' => array( 
            'method'=>"GET", 
            'header'=>"Content-Type: text/html; charset=utf-8" 
        ) 
    ); 

    $context = stream_context_create($opts); 
    $result = @file_get_contents($fn,false,$context); 
    return $result; 
}