2012年12月24日月曜日

僕の彼女を紹介しつつPHPでJSONファイルを扱います!

B13の笹本(偽名)こと大矢です。
今日はアレですね!アレ!という事で今日は僕の彼女を紹介します
こちらが彼女の写真です。ウェブサイトも持っているようです。見てあげてください。
紹介はこのくらいにします。本日はどうも、ありがとうございました。

などとここで終わらせる勇気が無かったのでPHPでのJSONファイルの扱い方について紹介しようと思います。こちらの記事をかなーり参考にしてPHPで使えるJSONクラスを作ってみました。

機能としてはJSONファイルを連想配列として読み込み、追加の処理を行い、また連想配列をJSON文字列として変換し保存する事ができます。
動作としてはコンストラクタの引数から得たファイル名でJSONデータを読み込み、addメソッドでデータを追加し、saveメソッドでJSONデータをファイルとして保存、closeメソッドでファイルを閉じています。ソースコードは以下のような感じです。

class Json {
 private $data;
 private $fp;
 private $filename;
 private $path = "./";

 public function __construct($name){

  $this->filename = $this->path . $name;
  $this->fp = fopen($this->filename,"r+");
  
  if(file_exists($this->filename)){
   flock($this->fp,LOCK_EX);
   $this->data = json_decode(fread($this->fp, filesize($this->filename)));

  }else{
   $this->data = array();
  }
 }

 public function add($data){
  array_push($this->data,$data);
 }

 public function save(){
  $this->fp = fopen($this->filename,"wb");
  fwrite($this->fp,json_encode($this->data));
 }

 public function close(){
  flock($this->fp, LOCK_UN);
  fclose($this->fp);
 }

}

このクラスを用いると以下のような感じになります。


$json = new Json("test.json");

$post_data = array("name" => "笹本","text" => "テストだよ");

$json->add($post_data);

$json->save();
$json->close();

上記の処理でname属性の『笹本』、test属性の『テストだよ』という文字列が『test.json』ファイルに追加されています。これをPOSTのデータ等が追加されるように変更していけば色々な物が作れそうです。

PHPでJsonを扱うには『json_decode』関数と『json_encode』関数を使用しています。 『json_decode』はJSON文字列を連想配列データとして変換。
『json_encode』は連想配列データをJSON文字列に変換してくれます。
MySQLなどのデータも連想配列で返ってくるのでこの関数とデータベースを組み合わせると、よりよくわからない物ができそうです。

ちなみに坂井くんの彼女はこの子らしいです、誰かが言っていました。怒られたら消します。ありがとうございました。

1 件のコメント:

  1. Mohon ijin berpromosi. service Ac segala jenis merk. kami service Ac mencakup wilayah coverage seluruh Surabaya, Gresik, Sidoarjo. kami juga menerima jasa service perbaikan AC bongkar dan pasang AC. pekerjaan kami cepat, tepat, profesional, harga kompetitif di banding harga jasa luaran.
    service ac split sidoarjo
    tukang service ac sidoarjo
    service ac surabaya sidoarjo
    service ac surabaya selatan
    service ac surabaya timur
    service ac surabaya barat
    service ac surabaya utara
    service ac kota surabaya

    SPLIT-TYPE AIR CONDITIONERS
    MULTI-SPLIT AIR CONDITIONERS
    CHILLED WATER FAN COIL UNITS
    VRF AIR CONDITIONERS
    CHILLERS
    WINDOW-TYPE AIR CONDITIONERS

    http://jualjasaacsurabaya.blogspot.com
    Segera hubungi kami, dan kami akan datang kerumah Anda 24 Jam Non Stop.
    (Hari Sabtu / Minggu / Hari Libur buka)
    PIN BBM : 54BE0B4B / 5474CD93 / TELP : 085645475574

    返信削除