php文件\u获取\u内容授权头

php文件\u获取\u内容授权头,php,file-get-contents,Php,File Get Contents,有人能解释一下为什么私有bitbucket存储库的此授权功能在我的本地机器(运行PHP版本5.3.17)上工作,但在我的远程服务器(运行PHP版本5.3.20)上没有授权 我并没有得到错误本身——我只是从bitbucket得到了一个“禁止”的响应。但是从我的本地服务器上运行,一切都很好 function bitBucketConnect($url){ global $bitPassword; global $bitUsername; $context = stream_c

有人能解释一下为什么私有bitbucket存储库的此授权功能在我的本地机器(运行PHP版本5.3.17)上工作,但在我的远程服务器(运行PHP版本5.3.20)上没有授权

我并没有得到错误本身——我只是从bitbucket得到了一个“禁止”的响应。但是从我的本地服务器上运行,一切都很好

function bitBucketConnect($url){
    global $bitPassword;
    global $bitUsername;
    $context = stream_context_create(array(
     'http' => array(
       'header' => "Authorization: Basic " . base64_encode("$bitUsername:$bitPassword")
       )
    ));

 // Make the request
 return file_get_contents($url, false, $context);
 }

您的代理将响应需要身份验证。你可能会挠头想,“但我在提供身份验证!”

问题是“header”值仅适用于http连接。因此,要在代理上进行身份验证,首先必须从HTTP中提取文件,然后才能在FTP上使用上下文

<?php 
$opts = array('ftp' => array( 
    'proxy' => 'tcp://vbinprst10:8080', 
    'request_fulluri'=>true, 
    'header' => array( 
        "Proxy-Authorization: Basic $auth" 
        ) 
    ), 
    'http' => array( 
    'proxy' => 'tcp://vbinprst10:8080', 
    'request_fulluri'=>true, 
    'header' => array( 
        "Proxy-Authorization: Basic $auth" 
        ) 
    ) 
); 
$context = stream_context_create($opts); 
$s = file_get_contents("http://www.example.com",false,$context); 
$s = file_get_contents("ftp://anonymous:anonymous@ftp.example.org",false,$context); 
?> 


您是否有权从服务器的IP地址登录?看起来ip被阻塞了,也许bitbucket有一个可以登录的ip列表?代码本身在PHP5.2下应该可以正常运行。您的服务器上不应该有phpinfo.php文件。我强烈建议您尽快将其移除。如果您需要提供有关服务器配置的信息,请不要包含使人们能够“识别”您的服务器的信息(例如主机名、ip地址),请查看第七个注释,并尝试是否对您的情况有帮助。您是否尝试过简单的cURL调用?至少,这可能会让我知道这是一个连接问题还是一个文件内容问题哇,非常感谢——这是我很久以来得到的最大帮助:)我在发送标题时遇到了同样的问题(“授权:基本$auth”),我将其更改为(“代理授权:基本$auth”),并解决了我的问题“Teun Lassche”谢谢