[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/08 11:25 / Filesize : 245 KB / Number-of Response : 924
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】 Smarty 隔離スレ 【テンプレート】



1 名前:nobodyさん [2008/02/02(土) 00:21:09 ID:6cKcKeTp]
まぬあるwww.smarty.net/manual/ja/

375 名前:モンピー77 [2009/01/05(月) 09:16:41 ID:mGW0zuF3]
Smartyのテンプレート内の変数をサニタイズ化するのに下のようなことを
しているのですが

$o_smarty->default_modifiers = array( 'escape:"html"' );

配列にも適用させること可能なのでしょうか?

みなさん、Smartyを使った場合のサニタイズはどんな風にされていますか?



376 名前:nobodyさん mailto:sage [2009/01/05(月) 11:59:56 ID:???]
>>375
default_modifires はクセがあるから気をつけたほうがよいよ。
{foreach}とか{assign}で変数弄ると二重にエスケープされちゃったり、配列入れるとエラー吐いたりする。

>Smartyを使った場合のサニタイズはどんな風にされていますか?
基本的には必要な箇所全てにescapeを書いてる。
上記踏まえて、面倒な事にならない場合だけ default_modifires 使ってる。

377 名前:nobodyさん [2009/01/07(水) 10:21:31 ID:nbhiW1pd]
>>375
そもそもPHP側ですませておく。
なんのために分離してるのかと

378 名前:nobodyさん mailto:sage [2009/01/07(水) 11:39:38 ID:???]
サニタイズはビュー側でもOKだと思うが。

379 名前:nobodyさん mailto:sage [2009/01/07(水) 12:32:40 ID:???]
サニタイズ(笑)

380 名前:nobodyさん mailto:sage [2009/01/08(木) 12:21:51 ID:???]
>>379(笑)

381 名前:nobodyさん mailto:sage [2009/01/08(木) 13:16:48 ID:???]
ん?反論できなくて涙目?w

382 名前:nobodyさん [2009/01/08(木) 14:37:59 ID:/Ay52XkK]
>>381
お前が暇人なだけだろw

383 名前:nobodyさん mailto:sage [2009/01/08(木) 16:01:24 ID:???]
>>378
誰も不可とは言ってないと思うが



384 名前:nobodyさん mailto:sage [2009/01/08(木) 16:03:12 ID:???]
>>382
必死だな

385 名前:nobodyさん mailto:sage [2009/01/09(金) 02:14:26 ID:???]
>>383
>>377ではPHP側でやれと書いてあるようにしか読めないんだがww

必死すぎて恥ずかしいな。

386 名前:nobodyさん [2009/01/09(金) 13:26:05 ID:dxaSQaiQ]
>>385
必死厨必死だな。

「みなさん、Smartyを使った場合のサニタイズはどんな風にされていますか?」
この意味わかるか?


387 名前:nobodyさん mailto:sage [2009/01/09(金) 14:19:53 ID:???]
「サニタイジング」じゃねーの?

388 名前:nobodyさん mailto:sage [2009/01/10(土) 01:02:19 ID:???]
>>386
スマン。日本語でお願い出来るか?

どういう意味で解釈したら
「そもそもPHP側ですませておく。なんのために分離してるのかと」
となるんだい?

389 名前:nobodyさん [2009/01/15(木) 22:45:35 ID:iReMhog8]
smartyを設定したんだけど、ページが表示されません
assignもdisplayも動かないというか、それ以前に
templatesディレクトリの指定とかがうまくいってるのかがわからないです
そういう設定が今どうなっているのか、確認する方法はないでしょうか?
ちなみに今のsmarty.class.phpへの接続は以下のような形です

<?php
//テスト
require_once('Smarty.class.php');//これでSmarty.class.phpに繋がってることは確認済みです
class MySmarty extends Smarty{
function MySmarty(){
$this->Smarty();
$mydir = dirname(__FILE__);
$this->template_dir = $mydir."/templates/";
$this->compile_dir = $mydir."/templates_c/";
$this->config_dir = $mydir."/configs/";
$this->cache_dir = $mydir."/cache/";
$this->caching = 0;
}
}
?>

これを、各phpからrequireさせています

390 名前:389 [2009/01/15(木) 23:24:27 ID:iReMhog8]
>>389に書いたファイルをrequireした.phpで、

require_once('MySmarty.class.php');
//Smartyクラスのインスタンス作成
$smarty = new MySmarty();
echo "テンプレートディレクトリ:".$smarty->template_dir;

としたら、正しいパスを読み込みました
これはSmarty.class.phpも読み込み成功してるってことですよね?

どうしてdisplayしないんだろう。。
どなたかご意見ください
一つのディレクトリに複数の/smartyディレクトリが存在しちゃいけないとかの
理由はないですよね?

391 名前:nobodyさん [2009/01/15(木) 23:29:20 ID:iReMhog8]
ごめんなさい、書き間違えです

×正しいパスを読み込みました
○正しいパスを出力しました

×一つのディレクトリに複数の…
○一つのサイトに複数の…

また、require_once()してるのが389のプログラムのファイルです(MySmarty.class.php)

392 名前:nobodyさん mailto:sage [2009/01/15(木) 23:35:13 ID:???]
compile_dir,cache_dirへの書き込み権限はありますか?

393 名前:nobodyさん [2009/01/16(金) 00:01:11 ID:7rtqusgx]
>>392
どうもです
パーミッションて奴ですよね? 700とか750で設定して試したんですがダメでした

そのものずばりで、displayに失敗してる、assignに失敗してる とはっきりわかる方法ないかなぁ



394 名前:389 mailto:sage [2009/01/16(金) 02:58:12 ID:???]
原因がわかりました! .tplに

<style type="text/css">
<![CDATA[
a:link{color:blue;}
a:focus{color:red}
a:visited{color:purple;}
]]>
</style>
という部分があったためでした。これを削除すると正常にdisplayされました。
念のため、この.tplのソースをコピペしてtest.htmlをつくり、それを直接開くと
どのブラウザでも確認できました
どうやら、Smartyと上の記述の組み合わせでのみエラーになるようです(理由はわからない)

このページは携帯用で、
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
って感じにXML宣言のあるxhtmlだったんですが、この中では<!-- -->は使えないって言うので
上記の形(<![CDATA[ ]]>)にしたところエラーになりました

1)XML宣言
2)携帯用サイト(外部CSS使えない→1)のせいでコメントは<![CDATA[ ]]>にならざるを得ない)
3)Smarty
という組み合わせは実用不可能というお話でした

395 名前:nobodyさん mailto:sage [2009/01/16(金) 06:34:07 ID:???]
>>394
ttp://www.phppro.jp/phpmanual/smarty/language.function.literal.html

396 名前:nobodyさん mailto:sage [2009/01/16(金) 14:02:35 ID:???]
デリミタの変更はSmarty最初の課題。

397 名前:nobodyさん mailto:sage [2009/01/16(金) 23:45:16 ID:???]
CSSは外部でいいやって思ってたけどこういう場合もあるんだな。
Smarty解釈をしないプレーンな{include}があってもいいんじゃないかという気がしてきたがあったっけ。

398 名前:nobodyさん [2009/01/19(月) 11:16:42 ID:RBlPIEnm]
通常のHP案件でSmartyを常用していたのですが、
みんクエのようなRPGタイプのブラウザゲームを制作予定です。
常に値が変動して最新の情報を表示しないといけないケースで、
Smartyを使用するのはナンセンスでしょうか?

399 名前:nobodyさん mailto:sage [2009/01/19(月) 11:19:59 ID:???]
ケースバイケース

400 名前:nobodyさん mailto:sage [2009/01/19(月) 15:19:03 ID:???]
cache切っても充分使えるしな。
重要なのはメンテナンス性だな、かえってテンプレ化しづらい場合もあるし・・・


401 名前:nobodyさん mailto:sage [2009/01/20(火) 18:40:01 ID:???]
PHP側で連想配列のキーにピリオドを含む使った

$foo['bar.baz']='hoge';

のような変数をSmarty側にassignした場合、
テンプレ側ではどういう表現をすればアクセスできるの?

{$foo[bar.baz]}

はだめだったんだけど、何か他の表現方法あるのかな?

402 名前:nobodyさん mailto:sage [2009/01/20(火) 20:16:27 ID:???]
つマニュアル

403 名前:nobodyさん mailto:sage [2009/02/03(火) 21:30:12 ID:???]
phpからdisplayしようとすると

Warning: preg_match() [function.preg-match]: Compilation failed: repeated subpattern is too long at offset 18454 in /usr/share/pear/Smarty/libs/Smarty_Compiler.class.php on line 454

Fatal error: Smarty error: [in main.tpl line 1]: syntax error: unrecognized tag: include file="header.tpl" (Smarty_Compiler.class.php, line 455) in /usr/share/pear/Smarty/libs/Smarty.class.php on line 1092

こんなエラーが出てしまうんですけども、原因を教えていただけないでしょうか。
ちなみにmain.tplの中身はこんなのです。

{{include file="header.tpl"}}
{{foreach from=$include_files item=file}}
{{include file="$file"}}
{{/foreach}}
{{include file="footer.tpl"}}



404 名前:nobodyさん mailto:sage [2009/02/03(火) 21:32:58 ID:???]
なんで二重括弧なの?

405 名前:nobodyさん mailto:sage [2009/02/03(火) 21:41:22 ID:???]
>>404

Smarty.class.phpを継承したクラスも使ってるので、本家との差別化のためです。

継承したほうは
$this->left_delimiter = '{{';
$this->right_delimiter = '}}';
を設定してあるので大丈夫だと思うんですけども。

ちなみに括弧ひとつにしても同じエラー出ます。

406 名前:403 mailto:sage [2009/02/03(火) 21:51:04 ID:???]
環境書き忘れました

CentOS 5.2 Kernel 2.6x
PHP 5.1.6

preg_matchでSmartyのタグ探して処理させてるから
タグ探しに失敗したSmartyがそんな命令ねーよって怒ってるんですかね。

407 名前:nobodyさん mailto:sage [2009/02/03(火) 21:53:11 ID:???]
試してみたいから再現できるコード出してくれ

408 名前:403 mailto:sage [2009/02/03(火) 22:23:57 ID:???]
<?php

require_once('MySmarty.class.php'); //適当に書き換えてください
$mysmarty =& new MySmarty(); //適当に書き換えてください

$a = 'test';
$mysmarty->assign('test', $test);
$mysmarty->display('test.tpl');

?>

-----------------------------------------

{{$test}}

###こんな単純なコードさえエラー出ます###

409 名前:403 mailto:sage [2009/02/03(火) 22:24:52 ID:???]
間違えました^^;

<?php

require_once('MySmarty.class.php'); //適当に書き換えてください
$mysmarty =& new MySmarty(); //適当に書き換えてください

$a = 'test';
$mysmarty->assign('test', $a);
$mysmarty->display('test.tpl');

?>

410 名前:nobodyさん mailto:sage [2009/02/04(水) 01:57:17 ID:???]
当然ながら私の環境では再現しません

411 名前:403 mailto:sage [2009/02/04(水) 19:44:57 ID:???]
既にSmartyが実働してるサーバからSmarty関連のファイルを引っ張ってきて
インストールしたら正常に動きました。
公式の最新バージョンはバグ有りなんですかね?
何はともあれ、お騒がせしました。

412 名前:nobodyさん mailto:sage [2009/02/04(水) 22:30:27 ID:???]
自分の環境で試してくれる回答者放置とか最悪な質問者だな

413 名前:403 mailto:sage [2009/02/05(木) 07:13:36 ID:???]
大変失礼しました。
わざわざ確認していただき、ありがとうございます。
お礼?になるか分かりませんが、問題のあった方のSmartyをアップしておきます。
libsの中身を入れ替えるだけで多分再現できると思います。

ttp://www1.axfc.net/uploader/File/so/18050




414 名前:nobodyさん mailto:sage [2009/02/05(木) 08:52:10 ID:???]
問題のあったファイルがお礼とかw

415 名前:nobodyさん mailto:sage [2009/03/03(火) 15:33:16 ID:???]
値がある場合はstring_formatの%0.1,なかった場合は にしたいんだけど
{var|default:' '|string_format:'%0.1'}
だと値が無い場合には全て0.0になってしまうし、
{var|string_format:'%0.1'|default:' '}
だと値が無い場合にnoticeが出てしまって両立できないんだけど、
どうしたらいいかな?

416 名前:nobodyさん mailto:sage [2009/03/03(火) 15:34:02 ID:???]
フォーマットのf抜けてた

417 名前:nobodyさん mailto:sage [2009/03/05(木) 19:41:11 ID:???]
CakePHP1.2にSmartyView入れて使い始めてみたんだけど
$form->createに$optionsを引数で渡すと出力されないのは指定の仕方が悪いのかま?

{$form->create('Modelhoge', array('action'=>'Actionhoge'))}

モデルだけ指定すると出力されるんだが、、

418 名前:nobodyさん mailto:sage [2009/03/06(金) 03:16:30 ID:???]
>415
register_modifier 使って関数自作すればいいんじゃない?

419 名前:nobodyさん mailto:sage [2009/03/12(木) 20:22:12 ID:???]
昨日テンプレートエンジンというものを知って調べたが、こんなもん速度と品質犠牲に使う本気で奴バカすぎ。ヒアドキュメントで十分すぎ。

420 名前:nobodyさん mailto:sage [2009/03/13(金) 10:39:43 ID:???]
そうだよ?

421 名前:nobodyさん mailto:sage [2009/03/13(金) 10:48:04 ID:???]
PHP自体がテンプレートエンジンであり
速度と品質を犠牲に使うなんて馬鹿すぎと既にCとJavaプログラマに言われていることを
419は知らないのだった

422 名前:nobodyさん mailto:sage [2009/03/13(金) 11:05:13 ID:???]
Smartyってめっちゃ便利やな!
PHP案件は全部これ使って開発してるぁるょ!

423 名前:smarty初心者 [2009/03/16(月) 14:02:13 ID:UpVqDdxv]
Fatal error: Call to a member function assign() on a non-object in・・・*.php on line 32
というエラーがでるのですが、どういう意味なのでしょうか?
教えてください。



424 名前:nobodyさん mailto:sage [2009/03/16(月) 15:28:49 ID:???]
>>423
ggrks

425 名前:nobodyさん mailto:sage [2009/03/16(月) 17:22:30 ID:???]
変数名が違うんだろ

426 名前:nobodyさん mailto:sage [2009/03/19(木) 02:15:19 ID:???]
そのレベルだとSmartyどころかphp初心者だろ……

427 名前:nobodyさん [2009/04/12(日) 10:19:11 ID:tJ4UxLsE]
ヤッターマン公式サイトはSmartyを使っているようだ。
www.ytv.co.jp/yatterman/

428 名前:nobodyさん [2009/04/22(水) 01:10:23 ID:rBHnGmhI]
Smartyのファイル名が
「%%45^45E^45E480CD%%index.tpl.php」

と言うふうになりますが、これはどういう規則性でこうなっているのでしょうか?
%%から%%は区切る為にあると思うし、元ファイル名は.phpの前に付いています。
しかし、それ以外の数字と記号の意味がわかりません。

429 名前:nobodyさん mailto:sage [2009/04/22(水) 01:44:07 ID:???]
Smarty::_parse_resource_nameに書いてある

430 名前:nobodyさん [2009/04/23(木) 02:53:59 ID:ai/dLDOC]
あいまい検索みたいな事って出来るのでしょうか?

例えば、test_file.phpというファイル名のファイルがあったとして
testで検索してもそのファイルがヒットするようにしたいのです。

opendirなどで指定ディレクトリを開いてファイルを1つずつ読み込み、
preg_matchなどの正規表現でファイル名を調べる方法もありますが、
もう少し短い手順で、簡単に調べられる方法はないでしょうか?

431 名前:nobodyさん mailto:sage [2009/04/23(木) 02:55:05 ID:???]
430です。すみません、誤爆です・・。質問スレに書きます。


432 名前:nobodyさん mailto:sage [2009/05/03(日) 08:41:04 ID:???]
template_cの中身を見たら
こんな変なファイルがありました
なんですか?
%%5A^5A2^5A201544%%test.tpl.php

433 名前:nobodyさん mailto:sage [2009/05/03(日) 12:28:14 ID:???]
コンパイル後のテンプレートファイル



434 名前:nobodyさん mailto:sage [2009/05/03(日) 14:56:11 ID:???]
なるほど
消しても問題なさそうですね?
ありがとうございます

435 名前:nobodyさん mailto:sage [2009/05/03(日) 17:01:11 ID:???]
( ゚д゚)ポカーン

436 名前:nobodyさん [2009/05/04(月) 18:34:03 ID:bGJWbWfu]
MTでPHPを使う部分にSmartyを使っているみたいなのですが、
MTのテンプレートを見ると <mt: >な独自タグを使っています。
Smartyで独自タグって定義できるのでしょうか?

437 名前:nobodyさん mailto:sage [2009/05/05(火) 03:15:12 ID:???]
>>436
できる(`・ω・´)

438 名前:nobodyさん mailto:sage [2009/05/05(火) 21:30:24 ID:???]
HTMLファイルだって定義するぐらいはできるんだぜ

439 名前:nobodyさん [2009/05/06(水) 01:41:19 ID:T5mYjMeP]
>>437-438
どこの設定を変更したら出来るのですか?


440 名前:nobodyさん mailto:sage [2009/05/06(水) 07:14:42 ID:???]
>>439
断る(`・ω・´)

441 名前:nobodyさん mailto:sage [2009/05/09(土) 23:09:48 ID:???]
www.smarty.netにつながらないんだけど俺だけ?

442 名前:nobodyさん mailto:sage [2009/05/10(日) 20:05:32 ID:???]
>>441
落ちてるね。こういうサイトはミラーが必要だとおもいまする。

443 名前:nobodyさん mailto:sage [2009/05/12(火) 01:20:58 ID:???]
一生落ちてればいいと思う。



444 名前:nobodyさん [2009/05/13(水) 11:19:30 ID:Q3CLDrVp]
{insert}
で指定する関数名に
クラスのメソッドを指定する方法はありませんか?

445 名前:nobodyさん mailto:sage [2009/05/13(水) 13:46:20 ID:???]
クラスのメソッドを指定できる関数をつくればいいんじゃあ

446 名前:nobodyさん mailto:sage [2009/05/13(水) 21:18:42 ID:???]
初心者で悪いんだが

--Hoge.php--------

class Hoge {
  var piyo;

  function Hoge() {
    $this->piyo = $_POST['some'];

    require_once 'view.tpl';
  }
}

--view.tpl---------

<p><?php echo $this->piyo; ?></p>


テンプレートとしての機能ってこれじゃ駄目なの?

447 名前:nobodyさん mailto:sage [2009/05/13(水) 21:46:03 ID:???]
>>446
こういうセキュリティホールを量産する奴がいるから
テンプレートエンジンは必要

448 名前:nobodyさん mailto:sage [2009/05/14(木) 00:07:02 ID:???]
>>447

イミフ

449 名前:nobodyさん mailto:sage [2009/05/14(木) 02:00:08 ID:???]
POSTで送られたデータを無加工で出力するなって事だ
そりゃそうと、普通にメソッドコール出来たと思ったけど

450 名前:nobodyさん mailto:sage [2009/05/14(木) 03:34:09 ID:???]
>>446
それでも問題無い場合もあるよ。
ケースバイケース。

複数人(特に外注)を使う場合は、記述方法の統一されたテンプレートエンジンをオススメだけどね・・・
PHPをテンプレートエンジンとして使う=テンプレートを扱う人にシステム全権限を与える。

善悪にかかわらず、不正なコードでシステムがクラッシュする可能性が増えるってこった。

451 名前:nobodyさん mailto:sage [2009/05/14(木) 03:40:17 ID:???]
>>450
>>447

452 名前:446 mailto:sage [2009/05/14(木) 14:32:58 ID:???]
>>447
ああすまない、ロジックとビューを分ける際にって所を聞きたかったので
その他の所は適当に書いてしまった。
テンプレートエンジンってのはそういう所も自動でやってくれるの?


>>450
とても納得できたよありがとう。
これもケースバイケースだろうけど、PHPerって実務に携わる場合って
Smarty必須だったり「おっ、いいね!」的なアドバンテージになったりするのだろうか。。
個人的な見解で良いので、聞かせてくれると有り難い。


453 名前:nobodyさん mailto:sage [2009/05/14(木) 14:45:29 ID:???]
Smartyならデフォルトで適用するフィルターを設置出来る
escapeを入れたら今回記述されたテンプレートでもちょっと安心

とりあえず、OpenPNEはやってた
興味があればソース眺めると良いかと



454 名前:nobodyさん [2009/05/14(木) 17:49:28 ID:A4v4Hdy/]
>>453
質問なんですけど、ソース見て、それがsmarty経由でつくられてるものだって、
どこでわかるんですか?

見れるんなら見たいんですけど。

455 名前:nobodyさん mailto:sage [2009/05/14(木) 18:51:12 ID:???]
HTMLソースじゃないぞ

456 名前:nobodyさん mailto:sage [2009/05/14(木) 20:10:22 ID:???]
>455
smartyでいうところのコンパイルされていないファイルって、見れるんですか?
だとしたら他人事ではないんですけど。

457 名前:nobodyさん mailto:sage [2009/05/14(木) 21:02:38 ID:???]
> それがsmarty経由でつくられてるもの

> それ
ってOpenPNEをさしてるの?OpenPNEはソースが配布されているけど

458 名前:nobodyさん mailto:sage [2009/05/14(木) 21:26:13 ID:???]
>457
あ、そういうことでしたか。
そして、ダウンロードもしてみました。
他の人がつくったsmartyのテンプレートファイル初めてみた。
勉強になるな〜

459 名前:nobodyさん mailto:sage [2009/05/14(木) 21:49:19 ID:???]
どんな風に勉強になった?

460 名前:nobodyさん mailto:sage [2009/05/14(木) 23:02:27 ID:???]
({ をデリミタタグとして使っているところとかです。

461 名前:nobodyさん mailto:sage [2009/05/16(土) 17:50:14 ID:???]
MTもSmarty使っているから、参考になると思うよ。

ただ、OpenPNEの方がわかりやすいね。
なんか日本人的な書き方のような気がする

462 名前:nobodyさん mailto:sage [2009/05/22(金) 09:35:19 ID:???]
Smartyの順序って
「PHPが苦手だからSmartyを使おう」
それとも
「PHPができるからSmartyでさらに上を目指そう」
のどっちなんですか?

わかる人からするとアホな質問かもしれませんが、
PHP初心者の自分には、どうしてもSmartyの役割がはっきりしなくて。

463 名前:nobodyさん mailto:sage [2009/05/22(金) 10:07:23 ID:???]
SmartyはPHPの単なるライブラリだよ・・・?



464 名前:nobodyさん mailto:sage [2009/05/22(金) 10:22:59 ID:???]
Smartyの用途はスレの上のほうで話題になってるじゃん
苦手だからとか上を目指そうとかそういう観点ではなく

465 名前:462 mailto:sage [2009/05/22(金) 11:11:41 ID:???]
>463,464
ご返答ありがとうございます。

スレも1から全部読みました。
そして、ここ数日ネットで調べまくったんですが、
どこも書いてあることは「デザインとプログラムを分離できるもの」ということで、
頭が悪すぎるのか、結局「smartyが何をしている」というのがわからずじまいでした。
そこで、書き込んでみたのです。

要は「工具セット」ってことですかね。
上の方で延々と行われた議論は
「使う工具(smartyの機能)なんか自分で作ればいい」派と
「始めからセット(smarty)であるんだから簡単で便利」派の言い争いって感じですか。

466 名前:nobodyさん mailto:sage [2009/05/22(金) 11:43:37 ID:???]
smarty使ってMVCのviewを強化したい派(利便性高・コスト高)と
php自体にview的な要素が入ってるんだから重複は無駄だよ派(利便性中・コスト中)って感じでないかな


467 名前:462 mailto:sage [2009/05/22(金) 17:49:33 ID:???]
>>466

!('A')あ〜
なんか少々モヤモヤが晴れてきました。
引き続き勉強します。

468 名前:nobodyさん mailto:sage [2009/05/23(土) 20:37:34 ID:???]
Smartyを勉強し始めたのですが、
phpコードに書いた和文が文字化けしてしまいます。
テンプレートの和文は文字化けしません。

phpで$smarty->assign('name', 'みなさん');として
tplに「こんにちは、{$name}!」とすると、
htmlで「こんにちは、文字化け!」とでてしまうのです。

全部UTF-8で書いています。
サーバーはsixcoreをかりており、mbstringの設定はこうしています。
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,EUC-JP,SJIS,JIS,ASCII
mbstring.substitute_character = none;

今日一日中ググりまくっているんですが、どうしてもわかりません。
どなたかお助けください。おねがいします。

469 名前:468 mailto:sage [2009/05/23(土) 20:42:52 ID:???]
phpファイルだけがSJISになってました!
ほんとサーセンでした!!!

470 名前:nobodyさん mailto:sage [2009/05/23(土) 21:22:40 ID:???]
「こんにちは、文字化け!」
はワラタ

471 名前:nobodyさん mailto:sage [2009/05/23(土) 21:30:08 ID:???]
smartyのテンプレートに$hogeという配列が空じゃない場合の条件分岐処理を書きたいんですけど、
この書き方はおかしいのでしょうか

{if $hoge!==""}text{/if}

たまにif文が動かないのでおかしいと思うのですが

472 名前:nobodyさん mailto:sage [2009/05/23(土) 22:28:46 ID:???]
smarty文法のばあい
===はあるけど!==はないんじゃないか?
マニュアルに記載されてないし

!($hoge==="")
に差し替えてみよう


473 名前:nobodyさん mailto:sage [2009/05/23(土) 23:15:34 ID:???]
is_array() とかつかえなかったっけ?



474 名前:nobodyさん mailto:sage [2009/05/25(月) 00:05:06 ID:???]
>>472
>>473

どちらも動作しました
ありがとうございます

475 名前:nobodyさん [2009/06/30(火) 18:33:31 ID:Cv5BCTzF]
既存のソースをフレームワークを使って書き直したいんだけど、smartyは他のフレームワークと比べて
何か利点はありますか?それとも他のフレームワークを使った方がよいですか?

フレームワークを使い比べたことがある方、教えてください。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef