[PHP][CakePHP]レンダリング後(CTPファイルに変数埋め込み後)の内容をファイルとして保存する
CakePHPにおいて、views/layouts/top.ctp にレンダリングして画面表示する場合は
<?php /** 画面表示 **/ function index() { $this->autoLayout = true; $this->layout = 'top'; } ?>
とする。
一方、レンダリング後の内容をファイルに保存する(または、処理を加える)場合は
<?php /** ファイルとして保存する **/ function save() { $this->autoLayout = false; // views/layouts/base.ctp に $values をレンダリングした内容を取得する $values = array('title' => $_POST['title'], 'name' => $_POST['name']); $this->set($values); $htmlContents = $this->render('/layouts/base'); //出力内容をクリアして画面に何も返さない $this->output = ''; // webroot/dst.html として保存する $fp = fopen('dst.html', "w"); fwrite($fp, $htmlContents); fclose($fp); } ?>
とする。