關於curl腳本的命令轉換(PHP)

不多嗶嗶直接上代碼(有關獲取harbor庫的)

沒有證書,可以使使用-k來代替–cacert ca.crt

curl命令獲取token

curl -iL -X GET -u admin:Har** https://192.0.0.0/service/token?account=admin\&service=harbor-registry\&scope=registry:catalog:* --cacert ca.crt

根據token獲取鏡像庫

// An highlighted block
curl -iL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer LA7yfEdUBYD3bDhLM" http://192.0.0.0/v2/_catalog --cacert ca.crt

下面是php的代碼

定義一個curl function。如果使用框架,可以定義成方法

function httpRequest($sUrl, $aHeader){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    // curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_URL, $sUrl);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    $sResult = curl_exec($ch);
    $sError=curl_error($ch);
    if($sError){
        die($sError);
    }
    curl_close($ch);
    return $sResult;
}
 public function getIma($sUrl, $aHeader)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        // curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_URL, $sUrl);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        $sResult = curl_exec($ch);
        $sError=curl_error($ch);
        if($sError){
                die($sError);
        }
        curl_close($ch);
        return $sResult;
}

$sUrl = 'https://116.85.31.12/v2/_catalog';
//header數據
$token = 'eysadasdasdasda(這裏定義獲取的token值)';
$aHeader = array('authorization: bearer '.$token.' ');
$sResult = httpRequest($sUrl, $aHeader);
//顯示返回數據
var_dump($sResult);
exit;

Basic相當於腳本命令中的-u。我的主要問題就卡在了這裏

 $token = 'https://192.0.0.0/service/token?account=admin&service=harbor-registry&scope=registry:catalog:*';

        $aHeader = $this->getIma($token,array('authorization: Basic '.base64_encode($this->username.':'.$this->password)));
        $d = json_decode($aHeader,true);
        $tokenNum = array('authorization:bearer '.$d['token']);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章