解説(6)スマーティでページを表示
ヤフーショッピングAPIを使ったサイト作り。
商品情報のデータを変数$list_yに配列で格納したら、次はスマーティにデータを送ってページを作る部分に進みます。
// ---------------- 商品ページ作成 --------------------------- //// スマーティにデータを送る$smarty->assign("keywords",$keywords);
$smarty->assign("list_y",$list_y);
これは、変数$keywordsと$list_yの内容をそれぞれ「keywords」「list_y」という名前でスマーティに送る指定です。
基本的にはいくつでも送ることができますので、ヤフーショッピングの検索結果と楽天市場の検索結果をそれぞれ送って比較するページを作ることもできます。
いわゆる「マッシュアップサイト」ってやつですね。
//テンプレートを呼び出して表示$smarty->display('kekka.tpl',$cache_id);
displayメソッドは、ブラウザの画面上に表示するという指定です。
kekka.tplは、表示するときに使うテンプレートの指定です。
なおテンプレートなので拡張子を.tplとしていますが、テンプレートファイルの拡張子は、自由に決めて構いません。
ただガンブラーウイルスなどでHTMLファイルが改竄されたりする事件がありましたので、テンプレートが改竄(かいざん)されないように、別の拡張子を使った方が無難です。
私はindex001.htmlなどという名前でテンプレートを作っていたら、見事に改竄されてしまって、ページを更新してもウイルス感染したままになってしまった経験があります。
テンプレート自体が改竄されなければ、サイトを更新するだけでリフレッシュできたんですが。
またfetchメソッドを使えば静的HTMLを生成することもできます//テンプレートにコンテンツを組み込んでファイルをはき出す例$PageHtml = $smarty->fetch('kekka.tpl');
$page_num = $cache_id.'.html';
file_put_contents('/'.$page_num,$PageHtml);
file_put_contents関数は「文字列をファイルに書き込む」関数です。
ファイル名と書き込む内容を指定して使います。
ファイルを開いたり閉じたりせずに、いきなり上書きしてくれる便利な関数です。
//終わり}これでserch.phpの説明は終わりです。