年別アーカイブ: 2013年

phpのテンプレートsmartyとか

最近久しぶりにPHPでサイトを作った。
その時smartyというテンプレートエンジンを使ったら便利だったという話。

テンプレートエンジンというのは、デザインとプログラム部分を分けることができるもので、
デザイン部分は普通のHTMLみたいに作って、プログラム部分と同じような変数を使うことで変数の中身だけ、プログラムファイルからデザイン部分に持ってこれる。
以前、pythonでdjangoは使ったことがあるんだけど、今回phpでテンプレートを使ってみて改めて便利だなと思った。

本業でプログラムをしてるわけじゃないから、PHPとかpythonとかjavaとか独学でちょこちょこ触る程度。
なので、テンプレートは難しそうというイメージがあった。だけど実際に弄ってみると、グーグルで検索して使い方を調べて30分ほどでインストールから実際にサンプルサイトを作るまでできた。
これは便利すぎる。一回使うと後はほぼ必須になる。

最近ドリームウィーバーも使い出してあまりの便利さに嬉しくなったんだけど、こういう便利ツールが実は全然難しいものじゃなくて、簡単な物だと知ってるかどうかは大きな違いだなぁと思った。

PHPでCSVデータの扱い

CSVからデータを取り出して連想配列に入れる方法のメモ。

以前pythonで作った時はsplitを使ったんだけど、phpで作ろうとして調べたらsplitは非推奨になっていた。
代わりにpreg_splitを使うらしいが、正規表現を使わないならexplodeを使うらしい。

$csvdがCSVファイル(区切りは半角スペース、囲みが””)として
$data = fgetcsv($csvd,1024,’ ‘,'”‘)
としてデータを取り出す。ここで半角スペースで区切ったデータが取り出せる(例えばA B Cみたいに)ので

$data2=(explode(‘ ‘,$data));

とすると。配列にそれぞれのデータを入れることができる。
次に$data2の1番目と3番目のデータを連想配列に入れるには
$skeyにキーを配列で入れておいて

$data3[$skey[$j]]=array($data2[0],$data2[2]);

で成功。取り出す時は
キーが$skey[$i]の1番目のデータを取り出す時は

print $data3[$skey[$i]][0];

みたいにすればOKだった。