亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解碼“https” php 數組中的 json 數組

解碼“https” php 數組中的 json 數組

PHP
慕少森 2023-12-15 15:50:33
我有以下 https:// url 其中包含 json 數組′https://us.api.blizzard.com/data/wow/mount/6?namespace=static-us&locale=en_US&access_token=USgdNPkRDwpJ1m4zQ2mHokA0O12E0kPTih我想在 php 數組中解碼這個 json 數組。為此我用過$jsondata = file_get_contents('https://us.api.blizzard.com/data/wow/mount/6?namespace=static-us&locale=en_US&access_token=USgdNPkRDwpJ1m4zQ2mHokA0O12E0kPTih');$data = json_decode($jsondata, true);我嘗試了很多解決方案,因為似乎已知file_get_contents無法讀取 https 網址。你能幫我嗎,我怎樣才能在 php 中解碼這個 json 數組,這樣我就可以繼續使用它,就像它是一個“正常”數組一樣。 PHP數組?我也嘗試了這個curl解決方案但沒有成功:$url="https://us.api.blizzard.com/data/wow/achievement/6?namespace=static-us&locale=en_US&access_token=USgdNPkRDwpJ1m4zQ2mHokA0O12E0kPTih";      function getSslPage($url) {    $ch = curl_init();    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    curl_setopt($ch, CURLOPT_HEADER, false);    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_REFERER, $url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);    $result = curl_exec($ch);    curl_close($ch);    return $result;}
查看完整描述

1 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

原因是 API 提供商正在阻止 CLI 類型的用戶代理,這很可能是為了防止機器人和此類事件。


如果您將用戶代理設置為使用 cURL 模擬允許的瀏覽器,則它可以完美運行:


function getSslPage($url, $userAgent) 

{

    $ch = curl_init($url);


    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    curl_setopt($ch, CURLOPT_HEADER, false);

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_REFERER, $url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);


    $result = curl_exec($ch);

    curl_close($ch);


    return json_decode($result, true);

}


$userAgent = 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0';

 

$url = "https://us.api.blizzard.com/data/wow/achievement/6?namespace=static-us&locale=en_US&access_token=USgdNPkRDwpJ1m4zQ2mHokA0O12E0kPTih";    



$data = getSslPage($url, $userAgent);


print_r($data);

https://img1.sycdn.imooc.com/657c056e000115da18441100.jpg

查看完整回答
反對 回復 2023-12-15
  • 1 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號