json形式で保存する

前回はjson形式で保存できてないために今回はjson形式で保存できるようにします。 jsonは、数値や文字列や配列やオブジェクトなどのデータを、文字列で表現できる 軽量なフォーマットです。

データをjson形式にする

POSTで受け取ったデータをjson形式にしないといけません。はじめやり方が全くわからなかったので、とりあえず調べてみることに。 いろいろ調べていると共通してでてくる言葉がありました。それはjson_encodeという関数がphpにはあるみたいです。 json_encodeは、値をjson形式にして返します。これについてのphpマニュアルを見てみると、参考になる記述がしてありました。

$arr=array('a'=>1,'b'=>2);
echo json_encode($arr);    出力結果は{"a":1,"b":2}

出力結果をみると、自分が保存したい形に近く、この方法でやってみることに。
まず、上記のやり方でいくと、ajaxでPOSTされたデータを配列にしその配列をjson_encodeでjson形式にする。

$arr=array('Name'=>$_POST["name"],'Log'=>$_POST["log"]);

このようにPOSTで受け取ったものを配列の形にしました。こうすることでNameというkeyにnameの値が入ります。 次にこの配列にしたものをjosn_encodeでjson形式にしてあげます。

$encode= json_encode($arr);

これでjson_encodeされた配列が$encodeという変数に代入され、ファイルに書き込むときに fwrite($filename,$encode);とすると、encodeされたものがファイルに保存されます。  出力するときはechoでエンコードしたものを指定してあげます。そして、ajax関数のsuccessのところでjqueryを使い

$("#出力したい場所").append('<p>'+data.Name+':'+data.Log+'<p>');

というようにしてあげればチャット画面に表示されます。

1月16日 宮本 勇