2016-11-25 4 views
2

から無効なJSONのresponceハンドルがthier CSGOアイテムサイトとイム打撃に取り組む第三パティ

のためのユーザインベントリを返すためにAPIを蒸し、これは私はdevに/ローカル

$response = $this->guzzle->request('GET', "http://steamcommunity.com/profiles/{$communityId}/inventory/json/730/2"); 

を打つURLがありますvarがダンプの後に - - ($対応 - > getBody() - >のgetContents(、それはすべて、次の

foreach (json_decode($response->getBody()->getContents(), true)['rgDescriptions'] as $item) { 
     $inventory[$item['name']] = $item; 
    } 

return $inventory; 

しかし、私は、私のサイトを更新したときに、それは私のforeachループのための無効な引数文句を言ったと正常に動作します))) - 返されるJSONデータは、奇妙なファンキーなものが含まれていのみ、ライブサイト上- 私は一般的にはJSONに新たなんだけど、それは次のよう

""" 
00006000\r\n 
{"success":true,"rgInventory":{"8161072596":{"id":"8161072596","classid":"1560432042","instanceid":"480085569","amount":"1","pos":1},"8159918836": 

ので

{"internal_name":"normal","name":"Normal","category":"Quality","category_name":"Category"},{"internal_name":"Rarity_Ancient","name":"Extraordinary","category":"Rarity","color":"eb4b4b","category_name":"Quality"}]}},"more":false,"more_start":false}\r\n 
00000000\r\n 
\r\n 
""" 
のようなエンドブロックのようなものが含まれています

私のforeachが、応答のjson_decodeがassoc配列の代わりにnullを返すので、これはもちろんです(下のフル機能を参照してください)

私は確信していますが、これらは改行であることは間違いありませんか?私の側で何かが欠けているのか、それとも蒸気からの応答が不足しているのか分かりませんが、私がdevでうまくいけばどうなっているのか分かりません。

私も調査でmagic_quotesを見つけましたが、私はそれらがPHP 5.4で償却されたと読んでいますか?私は5.6を実行しているので、他に何か不足しているサーバがあると思うだけです。

は、ここで私はしばらく前に同じ問題を抱えていた参照

public function getCSGOInventory($communityId) 
{ 
    $response = $this->guzzle->request('GET', "http://steamcommunity.com/profiles/{$communityId}/inventory/json/730/2"); 

    $inventory = []; 
    foreach (json_decode($response->getBody()->getContents(), true)['rgDescriptions'] as $item) { 
     $inventory[$item['name']] = $item; 
    } 

    return $inventory; 
} 

答えて

1

については、以下の私のヘルパー関数です。問題は、あなたのjsonコードで00000000と00006000のような乱数です。これはGuzzleのバグです。私はphp-curlパッケージをインストールすることで修正できました。

sudo apt-get install php-curl 

あなたがここにこれについての詳細を見つけることができます: https://github.com/guzzle/guzzle/issues/1385

を、問題を(あなたのUbuntuのようなOSの場合)を修正するために、次のようにapt-getをを実行してください。
関連する問題