htmltemplate.incがPHP5.3で動かない

PHPのテンプレートエンジンは、Hiroshi Ayukawaさんが作成したhtmltemplate.incをよく利用しています。
非常にコンパクトなので習得も早く、また軽いのも特徴です。

http://sourceforge.net/projects/htmltemplate/



ただ、このソース内で使われている関数 split() がPHP5.3以降非推奨となりました。
http://php.net/manual/ja/function.split.php
そのため、PHP5.3以降では警告が表示されるようになります。

対応策1:split()関数を変更

htmltemplate.incを修正して、非推奨の関数を使わないようにします。


2箇所あるので、ここをexplode()に置き換えます。 
split()とexplode()は正規表現を使えるかどうかの違いなんですが、今回正規表現は使っていないので、どちらでも書き方は変わりません。
$ar = split("/", $m);
の箇所を
$ar = explode("/", $m);
にすれば大丈夫です。


対応策2:php.iniの変更


 そもそもこの警告が表示されるようになったのは、PHP5.3から新しく E_DEPRECATED というエラーレベルが追加されたためです。 
E_DEPRECATEDは、将来のバージョンで動作しなくなる場合に出力される警告です。 http://php.net/manual/ja/errorfunc.constants.php

これを非表示にする場合、

(1)php.ini
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED


(2).htaccess
php_value "error_reporting" "E_ALL & ~E_NOTICE & ~E_DEPRECATED"


(3)PHPソース
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
または
ini_set("error_reporting", E_ALL^ E_NOTICE ^ E_DEPRECATED);


以上のいずれかの方法で、E_NOTICE と E_DEPRECATED が表示されなくなります。

  • Spread The Love
  • Digg This Post
  • Tweet This Post
  • Stumble This Post
  • Submit This Post To Delicious
  • Submit This Post To Reddit
  • Submit This Post To Mixx

0 Response to “htmltemplate.incがPHP5.3で動かない”

Leave a Reply