拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
PHPでYAMLにアクセスする
PHPでYAMLにアクセスしたい場面が出てきたので、その方法を調べてみました。
1.Spycを使う
PHPで書かれたYAMLパーサーとして、「Spyc」があります。
これを使うのが簡単だと思います。
1-1.Spycのダウンロードとインストール
まず、Spycのサイトからコードをダウンロードします。
ダウンロードしたZipファイルを解凍すると、「spyc.php」等のファイルと、いくつかのフォルダができます。
これらのうち、「spyc.php」ファイルのみサーバーにアップロードします。
そして、Spycを使いたいPHPのソースコードに、以下のようなrequire_once文を入れて、spyc.phpを組み込みます。
require_once('パス/spyc.php');
1-2.YAMLを読み込む
ファイルからYAMLを読み込んで、PHPのオブジェクトに変換するには、Spyc::YAMLLoadという関数を使います。
$obj = Spyc::YAMLLoad(YAMLファイルのパス);
また、YAMLの文字列をPHPのオブジェクトに変換するには、Spyc::YAMLLoadStringという関数を使います。
$obj = Spyc::YAMLLoadString(文字列);
1-3.YAMLを出力する
逆に、PHPのオブジェクトをYAMLの文字列に変換するには、Spyc::YAMLDumpという関数を使います。
$yaml_string = Spyc::YAMLDump(オブジェクト);
2.yaml拡張モジュールを使う
PECLで拡張モジュールをインストールできる環境なら、yaml拡張モジュールを使うと良いでしょう。
C言語で作られていますので、Spycより高速に動作することが期待できます。
2-1.準備
yaml拡張モジュールを使うには、LibYAMLが必要になります。
あらかじめ、LibYAMLをインストールしておきます。
例えば、Fedoraだと以下のコマンドでインストールできます。
sudo yum install libyaml sudo yum install libyaml-devel
2-2.yaml拡張モジュールのインストール
次に、以下のコマンドで、yaml拡張モジュールをインストールします。
sudo pecl install YAML
インストール後、php.iniファイルに「extension=yaml.so」の行を加えて、yaml拡張モジュールを組み込むようにします。
また、Apacheでモジュール版PHPを使っている場合は、Apacheを再起動します。
2-3.YAMLを読み込む
ファイルからYAMLを読み込んで、PHPのオブジェクトに変換するには、yaml_parse_fileという関数を使います。
$obj = yaml_parse_file(YAMLファイルのパス);
また、YAMLの文字列をPHPのオブジェクトに変換するには、yaml_parseという関数を使います。
$obj = yaml_parse(文字列);
2-4.YAMLを出力する
PHPのオブジェクトをYAMLの文字列に変換するには、yaml_emitという関数を使います。
$yaml_string = yaml_emit(オブジェクト);
さらに、変換後の文字列をファイルに保存したい場合は、yaml_emit_fileという関数を使います。
yaml_emit_file(ファイル名, オブジェクト);