3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(PHP)Smartyで改行文字を\nを<br>タグに置換する

Smartyで、改行コードを含む文字列を表示するときに、改行コード(\n)をHTMLの改行タグ()に置換する方法です。

下記のようなSmartyの書式で、それが可能なようです。

{$変数名|nl2br}

使用例です。

PHP

//Smarty読み込み(ドキュメントルート外のSmartyクラスにアクセス)

require_once('./smarty/libs/Smarty.class.php');

//Smartyオブジェクト作成

$smarty = new Smarty();

//Smartyディレクトリ設定(キャッシュやテンプレート置き場など)

$smarty->template_dir = "./smarty/templates";

$smarty->compile_dir = "./smarty/templates_c";

$smarty->cache_dir ="./smarty/cache";

 

//表示データをアサイ

$smarty->assign("testtext", "改行\nテスト\nです。");

 

//テンプレート表示

$smarty->display("test.tpl");

○HTML側

 

{$testtext|nl2br}

 

メール送信の確認画面とかに使えるので便利です。

こういうかゆい所に手が届くのも、テンプレートエンジンのいいところですね。

参考:

改行文字\nをbr タグへ置換(nl2br)