小二時間ほどハマったのでメモ。
久しぶりに自分のサイトで公開中のソフトウェアを更新したのですが、それらの情報はヘルプファイルを作成したりもするので、すべてJSONデータにして共通化してます。
たとえば、こんなふうになっています。
http://hibara.org/software/markdownsharpeditor/history/markdownsharpeditor_en.json
ところが、これを下記のようなコードで取ってくると、配列データではなく「1」が返ってくる。
[php]
$array_data =
json_decode(file_get_contents("markdownsharpeditor_en.json"));
[/php]
オンラインの「JSONバリデータ」で確認しても書式的に問題なし。うーん・・・
で、悩むこと小二時間。
結論から言えば、パースしたJSONデータ先頭にBOMデータが挿入されていたっていう(笑)。つまりBOM無しのUTF-8でないと、期待通りにパースしてくれないみたい。
エディタによっては、BOMの有無を表示しないので、意外と盲点ですね。
っていうか、PHPのjson_decode関数で、どっちでも行けるようにして(笑)。
このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。
日々の開発作業で気づいたこと共有を。同じところで躓いている人が、 検索で辿り着けたら良いな、というスタンスで記事を書くので不定期更新になります。
コメントする