PHP

2014年10月27日
Smarty3でNotice: Undefined index

Smartyを2系から3系にバージョンアップすると以下のエラーが出る可能性があります。

Notice: Undefined index: type

これは存在しないインデックスを参照使用した時に出るエラーとなります。
なるべくこういうエラーはつぶしておいた方がよいですが、一時的に消すには$smartyというインスタンスを生成した場合は以下の行を追加することで非表示にすることはできます。

$smarty->error_reporting = E_ALL & ~E_NOTICE;
Tags:,
Posted in 備忘録 | Comments Closed

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と表示されます。

Tags:,
Posted in 備忘録 | Comments Closed

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日のように出力を変更することができます。

Tags:,
Posted in 備忘録 | No Comments »

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を用意するべきですね。

Tags:,
Posted in 備忘録 | Comments Closed

2011年10月1日
PHPの開始・終了タグを制御する設定

PHPの開始・終了タグは基本ですが、短縮系やechoを含めたショートカットも存在します。

これを有効にするためには、php.iniに以下を設定する必要があります。

■php.ini
short_open_tag=On

■.htaccess
php_flag short_open_tag On

Onにすると、という形やで文字列を出力することができるようになります。
また、あまり使わないですが、asp_tagsをOnにすると、<% ~ %>というJavaなどで使われるタグも有効にすることができます。

[参考]コア php.ini ディレクティブに関する説明
http://php.net/manual/ja/ini.core.php

Tags:
Posted in 技術 | Comments Closed