SmartyでUTF-8のデータをShift_JISに変換

PHP

Smartyを使ってUTF-8のデータをShift_JISに変換する

私の場合は、携帯のサイトを作成するためでした。
PCサイト用で持っているUTF-8のデータをShift_JISで表示したいのに、簡単な方法がないかな~、と探してましたら、こんな方法を見つけました。

・はてな:PHPモジュールのSmartyを使用していて、PHPとテンプレートのエンコードをEUCで保存して、出力をShift-Jisにしたいのですが、どの様にすればいいでしょうか?
http://q.hatena.ne.jp/1170847935

上記を参考にして、UTF-8からShift_JISへの変換です。

 $smarty->register_outputfilter("Encode_utf8tosjis");
 
 function Encode_utf8tosjis ($tpl_output, &$smarty) {
 
 $tpl_output = mb_convert_encoding($tpl_output, 'Shift_JIS', 'UTF-8');
 return $tpl_output;
 
 }

参考:Smartyを設置する

SmartyからPHPの定数を読み込む

PHP

Smartyを利用していれば、Smartyのテンプレートファイルから、PHPの定数がそのまま読みこめます。

以下、サンプルです。

 //PHPプログラム内で定義された定数
 define('COMPANY_INFO','会社情報');
 //Smartyテンプレートファイルからの読み出し方
 {$smarty.const.COMPANY_INFO}

Smarty 配列の中身を出力する

PHP

Smarty 配列の中身を出力する

Smartyの配列の中身を、PHPのvar_dump関数のように出力してくれる修飾子があります。
ちなみに、Smaryでの修飾子とは、Smarty変数の後に|で記述するものです。

例:$test という配列の中身を出力する

{$test|@debug_print_var}

Smarty 現在選択しているURLを取得

PHP

Smarty 現在選択しているURLを取得

 {$smarty.server.REQUEST_URI}

で、現在のURLがSmartyで取得できます。

ちなみに、プロトコル(http://)と、ドメイン名は取れません。

  • zzzz — zzz {2016-11-10 (木) 12:15:53}
  • http:/www.yahoo.co.jp — aaa {2016-11-10 (木) 12:17:06}

Smarty 文字列の中身を検索する

PHP

PHP Smarty 文字列の中身を検索する

下記の方法を使えば、文字列の中身を検索できます。
また、現在のURLの中身も検索する事ができます!

 $a = 'abc';
 {if $a | strstr: 'ab'}
      echo 'ok';
 {/if}