前回は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日 宮本 勇