首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php file_get_contents授权头

php file_get_contents授权头
EN

Stack Overflow用户
提问于 2013-01-30 04:26:36
回答 1查看 21.1K关注 0票数 8

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

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

代码语言:javascript
复制
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);
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-08 21:57:16

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

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

代码语言:javascript
复制
<?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); 
?> 
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14591601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档