php smarty mysqlについて質問です。


while ($item = mysql_fetch_array($row)) {
$main[] = $item;
}
$smarty->assign('main', $main);

mysqlでテーブルの値を
{foreach from=$main key="key" item="value" name="test"}
上記でテンプレートにループ表示できるのですが、
ただそのまま値を表示するのではなく、取り出した値をPHPで処理(例えば取り出した文字列の値を置換するなど)してテンプレートでループ表示に入れるにはどうすればいいのでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/05/30 20:29:17
  • 終了:2013/05/31 14:55:21

ベストアンサー

id:dawakaki No.1

だわかき回答回数797ベストアンサー獲得回数1222013/05/30 22:12:57

ポイント150pt

最初の whileループの中で置換などの文字列処理を行えばよいです。
たとえば文字列置換str_replaceなら、次のように使います。

while ($item = mysql_fetch_array($row)) {
    $item = str_replace(検索文字列, 置換文字列, $item);
    $main[] = $item;
}
$smarty->assign('main', $main);
id:numb08

ありがとうございました。とても勉強になりました。

2013/05/31 14:54:33

その他の回答(1件)

id:dawakaki No.1

だわかき回答回数797ベストアンサー獲得回数1222013/05/30 22:12:57ここでベストアンサー

ポイント150pt

最初の whileループの中で置換などの文字列処理を行えばよいです。
たとえば文字列置換str_replaceなら、次のように使います。

while ($item = mysql_fetch_array($row)) {
    $item = str_replace(検索文字列, 置換文字列, $item);
    $main[] = $item;
}
$smarty->assign('main', $main);
id:numb08

ありがとうございました。とても勉強になりました。

2013/05/31 14:54:33
id:rouge_2008 No.2

rouge_2008回答回数594ベストアンサー獲得回数3512013/05/30 22:33:24

ポイント150pt

変数の修飾子のreplaceを使うと良さそうです。

http://www.smarty.net/docsv2/ja/language.modifier.replace.tpl

{foreach from=$main key="key" item="value" name="test"}
{$key} : {$value|replace:"置換対象文字列":"置換後文字列"}
{/foreach}


複数の置換を行いたい場合は、パイプ「|」で連結します。
http://www.smarty.net/docsv2/ja/language.combining.modifiers.tpl

Chapter 6. 修飾子の連結
変数には複数の修飾子を適用できます。 それらは左から右に連結された順に適用されます。 各修飾子は、| (パイプ) キャラクタで連結しなければなりません。


{foreach from=$main key="key" item="value" name="test"}
{$key} : {$value|replace:"Mac":"Macintosh"|replace:"Win":"Windows"}
{/foreach}

※regex_replaceを利用すると、正規表現による置換も可能です。
http://www.smarty.net/docsv2/ja/language.modifier.regex.replace.tpl

※大文字変換やキャピタライズなども可能です。
・Chapter 5. 変数の修飾子
http://www.smarty.net/docsv2/ja/language.modifiers.tpl

id:numb08

こんな方法があるのですね。ありがとうございました。

2013/05/31 14:54:58

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

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

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

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

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