0

重複の可能性:
PHP で ereg 式を preg に変換するにはどうすればよいですか?

いくつかの異なる Web サイトで使用した php 連絡フォームがあります。同じものを新しいサイトに実装しようとしていますが、次のメッセージが表示されます。

非推奨: 関数 eregi() は、36 行目の /home/content/58/10223058/html/contact-1.php で非推奨です

これが私のコードの36行目です:

if(!eregi($string_exp,$name)) {
    $error_message .= 'The Name you entered does not appear to be valid.<br />';
  }

これには簡単な修正方法があると確信していますが、私は PHP に非常に慣れていないため、これを修正する方法がわかりません!

どんな助けでも大歓迎です。ありがとうございました

4

2 に答える 2

4

1) これは単なる警告です。警告にもかかわらず、コードはまだ機能していると思います。正しい?

2) 「関数 eregi() は非推奨です」をグーグルで検索することで修正できます。例えば:

http://takien.com/513/how-to-fix-function-eregi-is-deprecated-in-php-5-3-0.php

// Old
if(!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $str)) {
    $msg = 'email is not valid';
}
else {
    $valid = true;
}

// New
if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $str)) {
    $msg = 'email is not valid';
}
else {
    $valid = true;
}

完全な PHP オンライン ドキュメントは次の場所にあります。

preg_match() の「man ページ」は次のとおりです。

于 2013-01-02T18:12:33.597 に答える
3

ほとんどの場合、交換できます

if(!eregi($string_exp,$name)) {

if(!preg_match('/'.$string_exp.'/i',$name)) {

ただし、常にではありません - パターン ( $string_exp) を確認する必要があります。

eregi()ただし、これを呼び出しの前のどこかに置くことで、メッセージを無効にすることができます。

error_reporting(error_reporting() & ~E_DEPRECATED);
于 2013-01-02T18:14:02.483 に答える