1

私はjsonが初めてです。JSONファイルからphpファイルにデータを読み込みたいと思っていました。

私のjsonファイルのデータはこのようなものです

{"multicast_id":8925377088262649527,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}

successとのfailure値を確認したいだけです。使った

json_decode($jason_string,true);

しかし、それは私のサーバーでは機能していません。理由はわかりません。

この問題を解決する最も簡単な方法を教えてください。詳細に説明してください。

4

2 に答える 2

1

コードは機能するはずです。

<?php 
$somestring = <<<HEREDOC
{"multicast_id":8925377088262649527,"success":0,"failure":1,"canonical_ids":0,"results"$
HEREDOC;

var_dump(json_decode($somestring, true));

期待どおりの出力:

chris@chris-UX31E:~$ php test.php 
array(5) {
  ["multicast_id"]=>
  int(8925377088262649527)
  ["success"]=>
  int(0)
  ["failure"]=>
  int(1)
  ["canonical_ids"]=>
  int(0)
  ["results"]=>
  array(1) {
    [0]=>
    array(1) {
      ["error"]=>
      string(13) "NotRegistered"
    }
  }
}

デバッグ目的でPHPロギングを有効にしてください!ご覧ください:http://davidwinter.me/articles/2009/07/14/enable-php-error-logging/

ローカルの開発サーバーの場合は、エラーを表示してすべてのエラーメッセージを有効にすることを好みます http://www.dzone.com/snippets/let-php-show-all-errors

于 2012-11-16T10:40:19.213 に答える
1

これを行う :

-> 開始 -> 実行 -> cmd.exe に移動

走る:

c:\path\to\your\php.exe --version

PHP 5.2 以降を使用しているかどうかを確認してください。(json 5.2 からデフォルトで php にバンドルされています) インストールしない場合は、(http://www.php.net/manual/en/install.pecl.windows.php) をインストールするか、php を新しいものにアップグレードする必要がありますバージョン。

あなたもシェルでこれをやろうとするかもしれません

c:\path\to\your\php.exe --ini

の前に表示されるphp.iniを編集します

Loaded Configuration File:

線を見つける

;拡張子=php_json.dll

「;」を削除します 保存します。行がない場合は追加できます。ウェブサーバーを再起動して、もう一度やり直してください

于 2012-11-16T10:57:04.117 に答える