PHPエラー 「Warning: eregi() [function.eregi]: REG_EMPTY」の原因と解決方法

PHPでeregi()関数を使用していて、以下のようなエラーメッセージが表示される時がある。

Warning: eregi() [function.eregi]: REG_EMPTY in D:\nobuneko\test.php on line 5

このようなエラーが出る場合、eregiの第1引数に渡している値が空の可能性がある。

《エラーとなるプログラム例》
$str = "";
$str2 = "nekodaisuki";

if(eregi($str,$str2)){
echo "neko";
}
else {
echo "koneko";
}
→「Warning: eregi() [function.eregi]: REG_EMPTY」エラーの他、「koneko」と表示される。

※上記のプログラム例では、eregiの第1引数「$str」が空であるため、「Warning: eregi() [function.eregi]: REG_EMPTY」というエラーが出てしまう。

本来、eregi()関数は、

eregi(正規表現,検査対象の文字列)

として、検査対象の文字列を正規表現検索させた結果(trueまたはfalse)を得る目的で使用すると思われるので、eregi()関数の第1引数が空となるのは問題だ、ということなのだろう。

《エラーとならないプログラム例》
$str = "neko.*";
$str2 = "nekodaisuki";

if(eregi($str,$str2)){
echo "neko";
}
else {
echo "koneko";
}
→「neko」と表示される。

前へ

PostgreSQLのlike演算子で_(アンダーバー)を検索する方法

次へ

寝んといかんなあ