• 締切済み

HTML_Template_Sigma

HTML_Template_Sigma を使って、テンプレートを作っています。 下記に、使用中のソースとテンプレートを示します。 data_list ブロック内で表示する {title} {date} をそのまま表示したいのですが、それぞれ、タイトル、日付、に置換されてしまいます。何か解決策はないでしょうか? ==== sigma_test.php ==== <?php require_once "HTML/Template/Sigma.php"; $tpl =& new HTML_Template_Sigma(dirname(__FILE__)); $tpl->loadTemplateFile("sigma_test.html", false, true); $hoge = array('{title}','ほげ','{date}',); foreach ($hoge as $data){ $tpl->setVariable('data_list',$data); $tpl->parse('data_list'); } $tpl->setVariable('title',"タイトル"); $tpl->setVariable('date',"日付"); $tpl->setVariable('body',"本文"); $tpl->show(); ?> ==== sigma_test.html ==== <?xml version="1.0" encoding="EUC-JP"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <title>メモ</title> </head> <body> <div id="content"> <div id="head"></div> <div id="menu"> <ul> <!-- BEGIN data_list --> <li><a href="">{data_list}</a></li> <!-- END data_list --> </ul> </div> <div id="main"> <dl> <dt>タイトル</dt> <dd>{title}</dd> <dt>日付</dt> <dd>{date}</dd> <dt>本体</dt> <dd>{body}</dd> </dl> </div> </div> </body> </html>

みんなの回答

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

phpというよりhtmlの問題ですね。 最初の変換をする時に、文字参照にすれば良いのでは? $hoge = array('{title}','ほげ','{date}',);

hogemodoki
質問者

お礼

そうですね。 質問を投稿した直後、自分でも気が付き・・・・(^^; 以下のようにしました。 foreach ($hoge as $key => $data){ $frm = array('{','}'); $to = array('{','}'); $hoge[$key] = str_replace($frm,$to,$data); }

関連するQ&A