- 1. 概要
- 2. 出力
- 3. 入力
1. 概要
今や、マシン間のデータ受け渡しや、コンフィグレーションファイルとして重宝している、「.json」形式。
「.ini」や「.xml」から「.json」へと置き換わっているものもあるようです。
「PHP」でも、「.json」形式が扱えるようです。
公式の説明は、以下にあります。
「PHP: JSON - Manual」
また、本ページは、下記のサイトを参考にさせていただきました。
「【PHP】MySQL に保存しているデータを JSON で吐き出す」
「PHP で JSON データの取得の仕方」
2. 出力
<?php
chdir(dirname(__FILE__));
$array = array();
$array[] = array('name' => 'hogehoge', 'age' => 20 );
$array[] = array('name' => 'fugafuga', 'age' => 21 );
$file = fopen("array.json", "w");
if (flock($file, LOCK_EX))
{
$date = fwrite($file, json_encode($array));
flock($file, LOCK_UN);
}
fclose($file);
というソースを書いて実行すると、下記の「.json」ファイルを出力します。
[{"name":"hogehoge","age":20},{"name":"fugafuga","age":21}]
3. 入力
前項で作成したファイルを読み込むソースを書いてみます。
<?php
chdir(dirname(__FILE__));
$file = fopen("array.json", "r");
$json = NULL;
if (flock($file, LOCK_EX))
{
$json = fgets($file);
flock($file, LOCK_UN);
}
fclose($file);
$array = json_decode($json, true);
print_r($array);
というソースを書いて実行すると、下記の結果が得られます。
Array
(
[0] => Array
(
[name] => hogehoge
[age] => 20
)
[1] => Array
(
[name] => fugafuga
[age] => 21
)
)
もうちょっと複雑な構造であったり、数値や文字列以外の型である場合は、どうなるのか?
そのあたりは、今後の課題になります。
|