php が php5.3 にアップグレードされた後、一部のプログラムが使用中に Function eregi() is deprecated というエラー メッセージを報告することがよくありました。 その理由は何ですか?
これは、php5.3 では eregi() 関数がサポートされなくなり、代わりに preg_match() 関数が使用されるためです。
解決策は、 eregi() 関数を preg_match() 関数に置き換えることです。
if(eregi('^test',$file))
は
if(preg_match('/^test/i',$file))で置き換えることができます
————-
PHP 5.3 . 0以降の正規表現については、PCRE仕様を使用する場合、POSIX Regexは推奨されなくなりました(仕様が多すぎるのを避けるためにRegexを統一してください?)
ということで、推奨されない関数(POSIX)と推奨される関数を以下に示します。置換される (PCRE) リスト、詳細については、PHP:
POSIX regex との違い
* POSIX → PCRE
* ereg_replace() → preg_replace()
* ereg() → preg_match()
* eregi_replace() → preg_replace( )
* eregi( ) → preg_match()
* split() → preg_split()
* spliti() → preg_split()
* sql_regcase() → 同等のものはありません
* 正規表現を必要とする Split は preg_split() で置き換えることができます
* 正規表現は必要ありません。固定文字列をすばやく分割するには、代わりにexplode()を使用できます(正規表現を必要とするよりも速度が大幅に速くなります)
。