PHP
2014年10月27日
Smarty3でNotice: Undefined index
Smartyを2系から3系にバージョンアップすると以下のエラーが出る可能性があります。
Notice: Undefined index: type
これは存在しないインデックスを参照使用した時に出るエラーとなります。
なるべくこういうエラーはつぶしておいた方がよいですが、一時的に消すには$smartyというインスタンスを生成した場合は以下の行を追加することで非表示にすることはできます。
$smarty->error_reporting = E_ALL & ~E_NOTICE;
2013年11月30日
Smartyで小数点を含んだ数値をカンマ区切りで表示する
PHPの関数で数値のフォーマットを指定して出力する関数があります。
number_format
http://php.net/manual/ja/function.number-format.php
この第2パラメーターで小数点は調整できます。
Smartyで利用する場合は以下のように指定することで表示内容の変更ができます。
{$parameter:number_format:1}
(例)12345.6は12,345.6と表示されます。
2013年11月26日
Smartyで日付フォーマット指定
smartyではdate_format修飾子を利用することにより、日付フォーマットを指定することができます。
date_format(smarty公式サイト)
http://www.smarty.net/docsv2/ja/language.modifier.date.format.tpl
例えば日付データdをsmartyテンプレート内で出力する場合、<!–{$d}–>(デリミターが<!–、–>の場合)のように出力します。
この時<!–{$d|date_format:”%Y年%m月%d日”}–>など指定すると、Y年m月d日のように出力を変更することができます。
2013年9月17日
さくらインターネット共用サーバーでSSLをPHP内で判定
PHPでSSL判定する場合、$_SERVER[‘HTTPS’]がonかどうかでチェックする場合がほとんどですが、さくらインターネットの共用サーバーでSSLを判定しようとしたら実現できませんでした。
HTTPSは設定されていないしPortはSSLも80、他に判定材料はないかと調べていたら、HTTP_X_SAKURA_FORWARDED_FORというサーバー変数が設定されることがわかりました。
したがって
if (isset($_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’])) {
//SSL
}
という感じでとりあえずは判定できました。
ただ、いつ仕様変更されても文句は言えないのでコアなロジックに使うのは危険です。
安定したサイトを作るためにはやはり独自SSLを用意するべきですね。
2011年10月1日
PHPの開始・終了タグを制御する設定
PHPの開始・終了タグは基本ですが、短縮系 ~ ?>やechoを含めたショートカット= ~ ?>も存在します。
これを有効にするためには、php.iniに以下を設定する必要があります。
■php.ini
short_open_tag=On
■.htaccess
php_flag short_open_tag On
Onにすると、 PHPコード ?>という形や= 出力内容; ?>で文字列を出力することができるようになります。
また、あまり使わないですが、asp_tagsをOnにすると、<% ~ %>というJavaなどで使われるタグも有効にすることができます。
[参考]コア php.ini ディレクティブに関する説明
http://php.net/manual/ja/ini.core.php