2017-10-26 1 views
0

ParseHubを使用して、AjaxベースのWebサイトからデータを取得します。データはjsonファイル形式で返されます。私は返されたjsonファイルを何時間も印刷するのに苦労してきましたが、成功することはできませんでした。私のPHPコードは次のとおりです:ParseHubから生成されたjsonファイルを画面に印刷するにはどうすればよいですか?

<?php 
header('Content-Type: application/json;charset=utf-8'); 

$params = http_build_query(array(
"api_key" => "xxxxx", 
"format" => "json" 
)); 

$result = file_get_contents(
'https://www.parsehub.com/api/v2/projects/{MY_RUN_TOKEN}/last_ready_run/data?'.$params, 
false, 
stream_context_create(array(
    'http' => array(
     'method' => 'GET' 
    ) 
)) 
); 

echo $result; 


?> 

ところで、json_decode()関数は機能しませんでした。誰でも助けてくれますか?

更新:コードとコードの出力をアップロードしました。あなたはいくつかのアイデアを与えることができます。

コード - >このlink 出力 - >このlink

+0

おそらくこれはすでにチェックされていますが、URLは正しく、$ resultは文字列ですか? (ブールではない) – billrichards

+0

json_decode()関数を使ってフルコードを与えることができます –

+0

また、ダンプされた$ result変数を与えることができますか? –

答えて

1

ParseHub API documentationから:

The Content-Encoding of this response is always gzip.

は、あなたの$結果変数にgzdecode機能を使用してみてください。そしてそれをjson_decode()でデコードします。

注意:PHP 5> = 5.4.0またはPHP 7バージョンが必要です。 Parsehub REST api wrapper classも試してみてください。

+0

はいgzdecodeが機能します。ご協力いただきありがとうございます。私は$結果を得た後にこの行を追加しました: $ data = gzdecode($ result); echo $ data; しかし、gzdecodeはstringを返します。したがって、$データはjsonではありません。さて、問題は文字列$ dataをjsonに変換することです。 :) – umitkilic

+0

私が使ってみると: echo json_decode($ data); "Catchable fatal error:クラスstdClassのオブジェクトを20行目のC:\ xampp \ htdocs \ a.phpの文字列に変換できませんでした。" – umitkilic

+0

コードの最終コードと出力をアップロードしました。あなたは確認してくださいいくつかのアイデアを与えることができますか? コード - > this [link](https://imgur.com/egarydf) 出力 - > this [link](https://imgur.com/93DgSn2) – umitkilic

関連する問題