PHP配列内の「https」json配列をデコードする

okwaves2024-01-25  8

次の https:// URL に json 配列が含まれています´

https://us.api.blizzard.com/data/wow/mount/6?namespace=static-us&locale=en_US&access_token=USgdNPkRDwpJ1m4zQ2mHokA0O12E0kPTih

この json 配列を php 配列でデコードしたいと考えています。

そのために私は使用しました

$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 URL を読み取れないことが知られているようなので、多くの解決策を試しました。

助けていただけますか。この JSON 配列を PHP でデコードして、「通常の」配列のように作業を続けるにはどうすればよいですか? php 配列?

このカール ソリューションも試しましたが、成功しませんでした。

$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

私はコンプしていますその URL にはまったく JSON が表示されませんが、その URL が JSON を返すということですか?

– アルベルト

2020 年 9 月 5 日 0:59

また、これも役立つかもしれません: stackoverflow.com/questions/5522636/get-file-content-from-url/…

– アルベルト

2020 年 9 月 5 日 1:02

これはありますか?あなたの質問を無視しますか? file_get_contents() を HTTPS で動作させるにはどうすればよいですか?

– キャットコン

2020 年 9 月 5 日 1:04

[リンク]stackoverflow.com/questions/1975461/… を試してみました。しかし、うまくいきませんでした。 @catcon

– ケルザー

2020 年 9 月 5 日 1:09

@Berto これは JSON を返すと思いますね。

– ケルザー

2020 年 9 月 5 日 1:11



------------------------

その理由は、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);

0

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。