PHP5.3.0でAMFPHPを実行できない
PHP5.3.0がいつの間にか出ていた。
PHP5.3.0の環境でAMFPHPをやってみたんだが、
Error retrieving service info:
Function eregi_replace() is deprecated
C:\xampp\htdocs\visualQandA\amfphp\core\shared\util\MethodTable.php on line 505
とかエラーでてた。
ので、その解決策の備忘録。
参考にしたサイト。
1. php.iniを編集してdeprected warningsをdisableにする
2. amfphpのcoreファイルをいじる
結論からいうと2.だけでやればおk
だけど、一応1.の方法も解説しておく。
1.の方法
php.iniをエディタでひらきます。
514行目らへんに “error_reporting = ~~”てのがあります。
これを
error_reporting = E_ALL & ~E_NOTICE
にかえて保存。
んでapache再起動。
2.の方法
amfphp/core/shared/util/MethodTable.php
をエディタで開く。
505行目に、
$comment = eregi_replace(“\n[ \t]+”, “\n”, trim($comment));
$comment = str_replace(“\n”, “\\n”, trim($comment));
$comment = eregi_replace(“[\t ]+”, ” “, trim($comment));
てのがある。
これを、
$comment = preg_replace(“
\n[ \t]+
U”, “\n”, trim($comment));
$comment = str_replace(“\n”, “\\n”, trim($comment));
$comment = preg_replace(“[\t ]+
U”, ” “,trim($comment));
これに書き換えて保存。
これだけで、動き始めます。
PHP5.3.0以降、eregi_replace()関数は非推奨になって、この関数をコールするとE_DEPRECATEDが発生するようになったらしい。
PHP6.0.0では完全に消えるようだ。
それで、1,の方法ではとりあえずE_DEPRECATEDを無視するように設定して一時しのぎしてるようだ。
参考
PHP 5.3だとCakePHPで大量のエラー
まぁとりあえず動いてよかったよかったー!
PHP 逆引きレシピ (PROGRAMMER’S RECiPE)