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」と表示される。