今日はPHPでYAMLです。
YAMLは階層を表現する言語です。
最近はXML以外にもYAMLを使ってデータを扱うことも多くなってきました。
今日はPHPからYAMLを呼び出して表示してみます。
YAMLは階層を表現する言語です。
最近はXML以外にもYAMLを使ってデータを扱うことも多くなってきました。
今日はPHPからYAMLを呼び出して表示してみます。
まずは、こちらからSPYCをダウンロードします。
http://code.google.com/p/spyc/
Downloadsからspyc-0.4.1.zip(現在の最新バージョン)をダウンロードします。
使うのは、spyc.phpのみです。
sprcという名前のフォルダを作成して、その中にspyc.phpを入れます。
PHP4の場合はphp4/spyc.php4というファイルを、spyc.phpにリネームしてsprc
フォルダの中に入れます。
準備はこれで完了。
あとは、YAMLデータを用意してデータを呼び出します。
sample.yml
sample1.php
実行すると・・・
このような形でYAML形式のデータが配列に格納されます。
あとは配列からデータを表示させるだけです。
sample2.php
これを実行すると・・・
YAML形式のデータを出力することができました。
次は配列を作ってYAML形式のデータを作ります。
さっきとは逆のパターンです。
次のプログラムを実行します。
sample3.php
これを実行すると・・・
YAMLのデータに変換されました。
Spyc::YAMLDump()関数の2番目の引数の2はインデントの数です。
ここでは、インデントを2に設定しているので、半角2つ分のインデントで下位の
データが出力されています。
サンプルではyml形式のファイルにも出力してみました。
とても簡単にできますね。
今日はこれでおしまいです。
http://code.google.com/p/spyc/
Downloadsからspyc-0.4.1.zip(現在の最新バージョン)をダウンロードします。
使うのは、spyc.phpのみです。
sprcという名前のフォルダを作成して、その中にspyc.phpを入れます。
sprc/spyc.php
PHP4の場合はphp4/spyc.php4というファイルを、spyc.phpにリネームしてsprc
フォルダの中に入れます。
準備はこれで完了。
あとは、YAMLデータを用意してデータを呼び出します。
sample.yml
dates:
- 2009/05/29
- 2009/05/28
- 2009/05/27
titles:
- たいとる1
- たいとる2
- たいとる3
contents:
- YAMLについていろいろ書いています。
- 今日は仕事がたくさんありました。
- 風邪が流行っています。注意しましょう。
sample1.php
<?
// SPYCの読み込み
require_once('spyc/spyc.php');
// YAMLの読み込み
$data_list = Spyc::YAMLLoad('datas/sample.yml');
print_r($data_list);
?>
実行すると・・・
Array ( [dates] => Array ( [0] => 2009/05/22 [1] => 2009/05/21 [2] =>
2009/05/20 ) [titles] => Array ( [0] => たいとる1 [1] => たいとる2 [2]
=> たいとる3 ) [contents] => Array ( [0] => YAMLについていろいろ書いて
います。 [1] => 今日は仕事がたくさんありました。 [2] => 風邪が流行ってい
ます。注意しましょう。 ) )
このような形でYAML形式のデータが配列に格納されます。
あとは配列からデータを表示させるだけです。
sample2.php
<?
// SPYCの読み込み
require_once('spyc/spyc.php');
// YAMLの読み込み
$data_list = Spyc::YAMLLoad('datas/sample.yml');
for( $i = 0; $i < count($data_list); $i++ ){
$html .= $data_list["titles"][$i];
$html .= "<br>";
$html .= $data_list["contents"][$i];
$html .= "<br>";
$html .= $data_list["dates"][$i];
$html .= "<br><br>";
}
echo($html);
?>
これを実行すると・・・
たいとる1
YAMLについていろいろ書いています。
2009/05/29
たいとる2
今日は仕事がたくさんありました。
2009/05/28
たいとる3
風邪が流行っています。注意しましょう。
2009/05/27
YAML形式のデータを出力することができました。
次は配列を作ってYAML形式のデータを作ります。
さっきとは逆のパターンです。
次のプログラムを実行します。
sample3.php
<?
// SPYCの読み込み
require_once('spyc/spyc.php');
// SPYCの読み込み
require_once('spyc/spyc.php');
// データ作成
$data_array["date"][] = "2009/05/29";
$data_array["date"][] = "2009/05/28";
$data_array["date"][] = "2009/05/27";
$data_array["title"][] = "たいとる1";
$data_array["title"][] = "たいとる2";
$data_array["title"][] = "たいとる3";
$data_array["contents"][] = "YAMLについていろいろ書いています。";
$data_array["contents"][] = "今日は仕事がたくさんありました。";
$data_array["contents"][] = "風邪が流行っています。注意しましょう。";
// 配列をYAMLに変換
$yaml = Spyc::YAMLDump($data_array, 2 );
// YAMLのファイル出力
$fp = fopen("datas/sample3.yml", "w");
fwrite($fp, $yaml);
fclose($fp);
// YAMLの出力
echo("<pre>$yaml</pre>");
?>
これを実行すると・・・
---
date:
- 2009/05/29
- 2009/05/28
- 2009/05/27
title:
- たいとる1
- たいとる2
- たいとる3
contents:
- YAMLについていろいろ書いています。
- 今日は仕事がたくさんありました。
- 風邪が流行っています。注意しましょう。
YAMLのデータに変換されました。
Spyc::YAMLDump()関数の2番目の引数の2はインデントの数です。
ここでは、インデントを2に設定しているので、半角2つ分のインデントで下位の
データが出力されています。
サンプルではyml形式のファイルにも出力してみました。
とても簡単にできますね。
今日はこれでおしまいです。














コメントする