- PR -

Smartyについて

1
投稿者投稿内容
くろ
常連さん
会議室デビュー日: 2004/08/17
投稿数: 42
投稿日時: 2007-02-01 22:04
こんばんわ、くろです。
(場違いな、質問でしたら申し訳ありません)

今、僕はPHP5の勉強をはじめ、そしてSmartyの勉強を始めたところです。

初歩的なプログラムを作成していて、少し挙動がおかしい気がしたので
どなたかご存知の方がいらっしゃいましたら、ご教授お願いいたします。

+-------------------------------------------------------------------+
helloSmarty.php

require_once('Smarty/libs/Smarty.class.php');
$o_smarty = new Smarty();
$o_smarty->template_dir = 'templates/';
$o_smarty->compile_dir = 'templates_c/'
$o_smarty->assign('name','World');
$o_smarty->display('helloSmarty.tpl');
+-------------------------------------------------------------------+
helloSmarty.tpl

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>Smartyの基本</title>
</head>
<body>
Hello ,{$name}!!<br>
</body>
</html>
+-------------------------------------------------------------------+

単純なプログラムなのですが、
以下のようなエラーが表示されます。
Fatal error: Smarty error: [in helloSmarty.tpl line 5]: syntax error: unrecognized tag: Hello ,{$name (Smarty_Compiler.class.php, line 439) in C:\php5.2.0\includes\Smarty\libs\Smarty.class.php on line 1095

テンプレートの5行目が怒られていると思いまして、
<title>Smartyの基本</title>から
<title>Smartyの基礎</title>に変更したころ正常表示がされました。

Smartyでは、titleタグで、使用出来ない漢字があるということなのでしょうか?
それとも僕の設定が甘いために発生した問題なのでしょうか?

調べてもみたのですが、それらしい答えがありませんでしたの、
ご質問させて頂きました。

環境としましては、
WindowsXP
PHP5.2
Smarty-2.6.16 になります。

まだまだ初心者で、初歩的な質問をしているかもしれませんが、
宜しくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-02-01 23:07
そもそも、詳しくないので理由はハッキリ理解していませんが、
SmartyでShift_JIS形式のテンプレートは相性が悪かったような気がします。

UTF-8で書いて、出力をバッファリングし、
Shift_JISに変換して出力していました。
(携帯向けのコンテンツだった為、他の文字コードでの出力が厳しかった・・・)
くろ
常連さん
会議室デビュー日: 2004/08/17
投稿数: 42
投稿日時: 2007-02-01 23:18
かつのり様

ご返答ありがとうございます。
ご指摘の通り、テンプレートをUTF-8で新たに作成し、
プログラムを実行してみましたところ、正しく表示されました。

ありがとうございました。
(自分の勉強不足を痛感しました)
1

スキルアップ/キャリアアップ(JOB@IT)