• 締切済み

Smartyで部分一致

Smartyで aaa.tplなどのファイルを作成し 動的ページを作成しております。 データはすべてデータベース上から取り込んでおります。 ファイル上にif関数などで条件式をつくっております。 等しいとか等しくないなどの 演算子があることはわかったのですが、 aaa・bbb・ccc… とあった場合、bbbの時にだけ適用する つまり「含まれているか」、「含まれていないか」 で判定する条件文をつくることはできないでしょうか? またその場合、どのような式(例でかまいません)に なるものなんでしょう? ご存知の方お教えください。

みんなの回答

  • kalkichi
  • ベストアンサー率64% (22/34)
回答No.1

preg_matchのような動作を希望されているのでしょうか? カスタム関数を作る、{php}タグを使うなども考えられますがテンプレ側でややこしい事をするよりも、プログラム側で判定しフラグ変数にアサインしてはどうでしょうか。 ---- プログラム側 ---- $value1 = "aaa・bbb・ccc"; $pattern = '/bbb/'; $display_flag = preg_match($pattern, $value1); $smarty->assign('value1', $value1); $smarty->assign('display_flag', $display_flag); ---- テンプレ側 ---- {if $display_flag == true}  マッチした時の表示 {else}  マッチしない時の表示 {/if} (動作確認していません。)

etu007
質問者

お礼

早速のお返事ありがとうございます。 これはためさせていただきます! ただ、事情があってテンプレート側でなんとなか したいんです…。 正規表現というよりは 単純に含まれているbbbの時は、表示 という命令文をつくりたいのですが…

関連するQ&A

専門家に質問してみよう