2017-03-08 29 views
-1

JSONファイルをPHP配列に取得できません。JSONからPHPへの配列エラー

私はapiから応答としてjson-fileを取得しました(curlでリクエストされました) 、それから配列を作成したいのですが、動作しません。

<?php 

class modExpose{ 
public static function getFunction($id){ 

//In my code i am "preparing" the request here 


// *********** cURL 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url.$qry_str); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
$response = curl_exec($ch); 
curl_close($ch); 

return $response; 
} 
} 


$id = $_GET['id']; 
$data = modExpose::getFunction($id); 
$array = json_decode($data,true); 
print_r($array); 

?> 

ますprint_r関数はのみ提供します:1。(同じのvar_dump()関数を行います)

は、ここに私のコードです。 また、html_entity_decode()を追加しようとしましたが、問題は残ります。

ありがとうございました!

+3

応答jsonとは何ですか? [json_last_error](http://php.net/json_last_error)の応答を確認してください – hassan

+0

顧客データが含まれていますが有効なjsonファイルであり、print_rを追加しないとここに投稿したくありません()またはvar_dump()は、最終的なサファリで、強調表示された完全な形式のjsonファイルを表示します。 – Philipp

+1

@Philipp、それはMVCEを提供しない弱い理由です。ファイルの構造を維持しながら、すべての個人識別可能な情報をプレースホルダ情報に置き換えることができます。 – HPierce

答えて

2

これはおそらく、curl_exec()コールの戻り値が成功した場合にはtrueであり、それがあなたのメソッドから返ってくるすべてのものです。

あなたはカールの呼び出しによって返されたデータを取得したい場合は、あなたがCURLOPT_RETURNTRANSFERオプションを設定する必要があります。別に私はあなたがで未定義ているように見える変数をチェックしていると仮定していることから、

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url.$qry_str); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
// Return the result on success 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
// Now response will contain the results of your curl call 
$response = curl_exec($ch); 

をあなたのサンプルコード。

+1

ありがとうございました! それを理解するまでには数年かかりました。 – Philipp

関連する問題