smartyでテンプレートに書かれた通りに出力する方法
smartyでは、{literal}{/literal}タブの内部に書かれたコードはそのままで表示されます。
カモトラはデリミタを以下のように変更しているので、テンプレートのほうで「<!DOCTYPE html>」と記載するとエラーになってしまいます。
※設定しているデリミタは「<!–{」なので、違うはずなんですけどね。
index.php
1 2 3 4 5 6 7 8 |
<?php $smt = new Smarty(); $smt->left_delimiter = '<!--{'; $smt->right_delimiter = '}-->'; $smt->display('index.html'); ?> |
テンプレートファイルで「<!DOCTYPE html>」を{literal}で囲みます。
ここで重要な点はphpファイルのほうでデリミタを変更していること。
{literal}のままではエラーになります。
「<!–{literal}–>」と「<!–{/literal}–>」で囲む必要があります。
index.html
1 2 3 4 |
<!--{literal}--> <!DOCTYPE html> <html> <!--{/literal}--> |
参考URL:http://www.smarty.net/docsv2/ja/language.function.literal.tpl