投稿者 |
投稿 |
|
#1 2009 年 1 月 6 日(火) 19:57
|
会員
登録者: 1 2009
返信数: 7
|
初めてこちらに書き込みさせていただきます。
PHPを勉強して間もなく、Smartyを使用してPHPを勉強しようとしています。 サーバ環境は、LAMPサーバを構築しています。
下記のソースからエラーが発生します。
php ------------------------------------------------------ <?php require_once("Smarty/Smarty.class.php"); $o_smarty->template_dir="../templates"; $o_smarty->compile_dir="../templates_c"; $o_smarty->assign("name","World"); $o_smarty->display("hello.tpl"); ?> ------------------------------------------------------
tpl ------------------------------------------------------ <html> <head> <title>Hell,World!</tilte> </head> <body> Hello,{$name}! </body> </html> ------------------------------------------------------
apache error PHP Fatal error: Call to undefined method stdClass::assign()
よろしくお願いします。
|
|
#2 2009 年 1 月 7 日(水) 9:46
|
会員
登録者: 10 2007
返信数: 71
|
実は私、Smartyを知らないので詳しいことはわかりませんが・・・ 。 この掲示板の「PHP事始め」のスレッド「 smartyの使い方」を参照してみました。 もしかしたらrequire_once()行の後に、このような行が必要ではありませんか?。 <?php require_once("Smarty/Smarty.class.php"); $o_smarty = new smarty(); $o_smarty->template_dir="../templates"; (以下略) 詳しいことはSmartyに慣れていらっしゃる方にお願いしたいです。 またphpマニュアルの「クラスとオブジェクト」の章を参考にしても良いかと思います。
|
|
#3 2009 年 1 月 7 日(水) 11:33
|
会員
登録者: 1 2009
返信数: 7
|
kona@mさん、ご返信いただきありがとうございます。 早速、ご指摘いただいた部分のソースを追加してみましたが、同様のエラーでうまく動いてくれませんでした。。。
Smartyの部分のご質問なので、ここに書き込みすることがお門違いでした。。
もう少し、自力でがんばってみます。ありがとうございます!
|
|
#4 2009 年 1 月 8 日(木) 22:07
|
管理者
登録者: 10 2005
返信数: 38
|
ここで問題ないですよ 指摘を受けて修正したコードを見せてください もともとのソースは個人的にはPHPは想定どおりのエラーを出していますが,kona@mさんのご指摘で assignに関しては問題は出てこなくなるはずだと思います.
|
|
#5 2009 年 1 月 10 日(土) 21:16
|
会員
登録者: 1 2009
返信数: 7
|
ご返信ありがとうございます。 こちらで、良かったのですね。
早速kona@mさんにご指摘いただいたところを修正してやってみたました。 assignのエラーは出てこなくなったのですが、 別の不具合が、発生しました。
内容としては、 IEで表示した際に、「Hello,{$name}!」と変数がそのまま表示されるようになってしまいました。。
おそらく文字コードの関係でリミタリが正常に認識できていないとおもったので、 リミタリを、これから{→{{へ変更してみたのですが、同様に表示されてしまい。 現在、お手上げ状態です。。。
ソースはすべて、UTF-8で書いており、UTF-8で勉強していこうと思っています。
なにか助言など、いただけると幸いです。 宜しくお願いいたします。
|
|
#6 2009 年 1 月 11 日(日) 11:07
|
管理者
登録者: 10 2005
返信数: 38
|
疑ってしまってすみませんが,UTF-8のつもりでUCS-2とかでテンプレートを保存してしまっているとかないですか? #以前知人がやっちゃったミスです
|
|
#7 2009 年 1 月 11 日(日) 16:07
|
会員
登録者: 1 2009
返信数: 7
|
ご返信ありがとうございます。
いあいあ、全然疑ってくださいw
確認したのですが、やはりUTF-8でソースは作っていますね。
一応、作成するときの手順としましては、 EmEditorを使用していて、保存するときにUTF-8にして、保存しています。
テンプレートファイルもPHPファイルもUTF-8で書いているのですが、 もしかして、テンプレートファイルとPHPファイルの文字コードって、違うコードで書くのが一般的なんでしょうか?
すみません。結構、長いスレになってしまいましてw よろしくお願いいたします。
|
|
#8 2009 年 1 月 30 日(金) 11:05
|
会員
登録者: 1 2009
返信数: 7
|
問題解決しましたので、書き込みいたします。 原因は、やはり文字コードでした。PHP.iniファイルの設定が間違っていました。 mb_stringの値をいじったら、問題なく表示されました。
ありがとうございました。
|