Smarty で2次元配列のデータを取得したい
tbk
tbk
ATOMRSS
  • コード求むID: 83
  • 登録日時:  2007/08/09 23:55
  • 最終更新日時: 2007/08/10 12:10
  • アクセス数: 3187
  • タグ:  php foreach smarty 2次元配列
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加

お世話になります。
Smarty を使って 2次元配列のデータを foreach を使って取得・表示したいのですが、
Warning が出る+正常にデータが取得できません。

どなたか、この現象に心当たりはありませんでしょうか。

■■実行結果■■
Warning: htmlspecialchars() expects parameter to be string, array given in D:\Application\xampp\php\smarty\plugins\modifier.escape.php on line 26

Warning: htmlspecialchars() expects parameter to be string, array given in D:\Application\xampp\php\smarty\plugins\modifier.escape.php on line 26
key: 0, value: 
key: 0, value: 

↑本当は value の中身を表示したいのですが。。。

■■ソースコード■■
・index2.php
・index2.tpl

■index2.php■
<?php
require_once '../sub/MySmarty.php';

$dummys array(
           array(
               'title' => "testTitle",
               'name' => "tbk"
           ), 
           array(
               'title' => "testTitle2",
               'name' => "tbk2"
           )
);

$o_smarty new MySmarty();
$o_smarty->assign('dummys', $dummy);
// すべての変数の対してHTMLエスケープを施す。
$o_smarty->default_modifiers=array('escape:"html"');
$o_smarty->display('index2.tpl');
?>


■index2.tpl■
{foreach from=$dummys item=dummy}
  {foreach from=$dummy item=data key=hash}
    
    key: {$hash}, value: {$data}<br />

  {/foreach}
{/foreach}

コメント

default_modifierを指定すると、テンプレートで用いられている
変数すべてにエスケープ処理が行われます。
(たとえば、foreach文の$dummysなどにも)

なので、そのエスケープ処理を行わせないために
{$dummys|smarty:nodefaults} などと書かないといけません。
このあたり面倒くさいですよね。。。

http://www.smarty.net/manual/ja/variable.default.modifier...

GJGJGJGJ

  • tbk
  • 2:tbk
  • 2007/08/10 12:10

返答ありがとうございます!

エスケープが失敗している為に値(value)が表示されてないとは思っていたのですが、
{$dummys|smarty:nodefaults} という解決法もあったのですね。
それぞれに htmlspecialchars をやるしかないのかと思ってました。。。


まずは、マニュアルも読まないといけませんね~。
ありがとうございました。

  • GoodJob
  • 0

前へ 1 次へ

コメントする

[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。

[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。

ゲスト投稿者:ゲスト:

関連ソースコード・ノウハウを登録

PDFLib | A library for processing PDF on the fly プレゼン公開・共有サイト handsOut.jp オープンタイプ株式会社 チーム・マイナス6% - みんなで止めよう温暖化

ブックマークコメント