Deprecatedの修正例(POSIX)

PHP5.3以降ではPOSIX正規表現の関数は将来 PHPに実装されなくなるため非推奨となっています。 POSIXの関数を使用した場合、次のようなDeprecatedの警告エラーが出ます。

[参考記事] php.iniや.htaccessなどでDeprecatedエラーを消す方法

Deprecated: Function ereg() is deprecated
Deprecated: Function split() is deprecated

このためPOSIXの正規表現関数は、PCREの正規表現関数に置き換えることとなります。
またPOSIX正規表現よりPCRE正規表現のほうが動作が速いらしいです。

ただPHP5.3以降で動かしたいだけ、手っ取り早く警告エラーを消したいということであればエラーレベルを変更すると警告エラーは消すことができます。
しかしその場合はPHPのバージョンが上がったときなどに動かない可能性があります。

[参考記事] OpenPNEでDeprecatedエラーを消す方法

OpenPNE3.4などはPHPのバージョンが上がると使用できなくなります。

POSIXPCRE正規表現を使わないなら
String 関数
ereg_replace()preg_replace()str_replace()
ereg()preg_match()strpos()
eregi_replace()preg_replace()
eregi()preg_match()
split()preg_split()explode()
spliti()preg_split()
sql_regcase()なし

ereg()が使えなくなるならmb_eregを使えばよいという意見もありますが、POSIX正規表現が使えなくなるとmb_eregも使えなくなる気がします。

ereg_replace()

preg_replace()で置き換え可能

$string = 'test site';
echo ereg_replace("test", "example", $string);

$string = 'test site';
echo preg_replace("/test/", "example", $string);

ereg()

preg_match()で置き換え可能

$string = 'test site';
if(ereg("test", $string)){
  echo 'match!';
}

$string = 'test site';
if(preg_match("/test/", $string)){
  echo 'match!';
}

正規表現を使用しないならstrpos()で置き換え可能

$string = 'test site';
if(false !== strpos("test", $string)){
  echo 'match!';
}

eregi_replace()

preg_replace()に i パターン修飾子を付けることで置き換え可能

$string = 'Test site';
echo eregi_replace("test", "example", $string);

$string = 'Test site';
echo preg_replace("/test/i", "Example", $string);

ereg()

preg_match()に i パターン修飾子を付けることで置き換え可能

$string = 'test site';
if(eregi("test", $string)){
  echo 'match!';
}

$string = 'Test site';
if(preg_match("/test/i", $string)){
  echo 'match!';
}

split()

preg_split()で置き換え可能

$string = 'aaa:bbb:ccc';
$arr = split(":", $string);

$string = 'aaa:bbb:ccc';
$arr = preg_split("/:/", $string);

spliti()

preg_split()に i パターン修飾子を付けることで置き換え可能

$string = 'aaaXbbbXccc';
$arr = spliti("x", $string);

$string = 'aaaXbbbXccc';
$arr = preg_split("/x/i", $string);

sql_regcase()

簡単に置き換え可能な関数はありません。

関連記事

スポンサーリンク

RADIANS関数 度からラジアンに変換する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る