ZendFrameworkでCSVファイルを生成


CSVファイルの生成が少し簡単に出来るみたいなのでメモ。

1
2
3
4
5
6
7
8
9
// Controler内で記述
// いつも通りにパラメータをセット
$this->view->params = $params;

// パラメータを反映したテンプレを取得
$content = $this->view->render('template.csv');

// 適当なファイル名で保存
file_put_contents('output.csv', $content);

テンプレートは普通のビューとかと同じようにPHPで記述します。

1
2
3
<? foreach ($this->params as $line) : ?>
<?=implode(',', $line) . "n" ?>
<? endforeach; ?>

通常はコントローラ名に連動して決まったりしますが、テンプレートファイル名を直接指定してデータを取得できます。

ソースはUTF-8でCSVはShift_JISとかよくあるので、file_put_content(‘output.csv’, mb_convert_encoding($content, ‘SJIS-WIN’, ‘UTF-8’) とかで出力の直前に変換したり出来て便利!
あ、あとCSVに限らずいろんなテキストファイルの生成に使えるよね。

しかし、最近JavaScriptばかりで久しぶりにPHPさわったよ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です