読者です 読者をやめる 読者になる 読者になる

SmartyテンプレートからユニークなIDを生成

Smartyを使ってて、画像ファイルなんかがブラウザにキャッシュされるのを防ぐために、<img src="hoge.png?123456" />みたいなユニークなIDかランダムな値か、要するに毎回違う値を付けたくなった。

もちろんPHP側からそういう値をassignしてあげればいいんだけど、これくらいテンプレート上でやりたいよね。

ところでSmartyといえば{$foo}みたいな構文ですが、{1}とか{"hello"}とかリテラルを書くとそのまま値として評価されるって知ってました?

あと、すべてのPHP関数は暗黙的にSmarty修飾子(modifiers)として使えるって知ってました?

これらを使って思いついた方法。

{"U"|date}
{"x"|uniqid}
{0|rand:999999}