PHPのSmartyの知識がある方に質問です。

Smartyでは、PHPサイドでタグを使用して、
assignすると、勝手に<が&lt;等に変換され
タグ扱いしないように、出力される仕様があります。

このありがた迷惑仕様をオフにするには
どうすればよろしいでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/01/15 03:21:24
  • 終了:2007/01/15 16:41:58

回答(2件)

id:openseed No.1

openseed回答回数51ベストアンサー獲得回数62007/01/15 04:21:14

ポイント35pt

間違っていたらすみません。

テンプレート側で、escape しているということはありませんか?

PHP:

$str = "<b>太字</b>";

$smarty->assign("str",$str);

テンプレート:

{$str|escape}

その場合は、{$str} とすれば、そのまま出力されると思います。



参考:

http://smarty.karakuriya.biz/cat36/000384.html

http://chizuru.bunkasha.co.jp/~kisara/bliki.cgi/1145536916?Outpu...

id:openseed No.2

openseed回答回数51ベストアンサー獲得回数62007/01/15 04:41:41

ポイント35pt

すみません。追記です。

私の勉強不足でした。

http://smarty.nekosuke.com/000018.htm

$default_modifiers の値が設定されている場合、テンプレート側で、escape の指定を省略しても、escape することができます(escape されてしまう)。

設定箇所:

Smarty.class.php(303)

/**

* This is a list of the modifiers to apply to all template variables.

* Put each modifier in a separate array element in the order you want

* them applied. example: <code>array('escape:"htmlall"');</code>

*

* @var array

*/

var $default_modifiers = array();//array('escape:"htmlall"');

の値や

$smarty =& new Smarty();

print_r($smarty->default_modifiers);

などで、default_modifiers の値を確認みると良いと思います。


もし、現在の設定を変更せず、特定の値だけ利用したい場合は、

http://www.phppro.jp/phpmanual/smarty/variable.default.modifiers...

が、参考になるかもしれません。


以上、参考まで。

id:makocan

ありがとうございます!

解決しました!

2007/01/15 16:26:00

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません