Php 函数eregi()已弃用(在我身上)

Php 函数eregi()已弃用(在我身上),php,Php,我的网站有一个联系表格,上面写着: 已弃用:函数eregi在中已弃用 /home/sessionj/domains/XXX.com/public_html/test/contactform.php on 第12行 但是这封邮件是发给我的,而且警告很烦人 有坏代码吗 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <link rel="stylesheet" hr

我的网站有一个联系表格,上面写着:

已弃用:函数eregi在中已弃用 /home/sessionj/domains/XXX.com/public_html/test/contactform.php on 第12行

但是这封邮件是发给我的,而且警告很烦人

有坏代码吗

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/style.css" />
<title> Contact Form</title>
</head>
<body>
<?php
function is_valid_email($vemail) {
$result = TRUE;
     if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",    $vemail)) {
$result = FALSE;
}
   return $result;
  }
//if "email" is filled out, send email
if (isset($_REQUEST['email']) && $_REQUEST['email'] != '' && $_REQUEST['name'] != '' && $_REQUEST['message'] != ''
&& is_valid_email($_REQUEST['email']))
{
//send email
$email = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$recievers_email = "info@xxx.com";

mail($recievers_email, "$subject",
$message, "From:" . $email);
echo "<p class='form_success'>Message sent! Thank you!</p><p class='form_success_sub'>We'll reply as soon as possible, SJ.</p>";
}
else
{
 //if "email" is not filled out, display the form
if(!is_valid_email($_REQUEST['email']))
{
    echo "<p class='form_error'>Please, insert an email address.</p>";                         
 }
else if($_REQUEST['name'] == '')
{
    echo "<p class='form_error'>Please, write your name.</p>";
}
else if($_REQUEST['message'] == '')
{
    echo "<p class='form_error'>Please, leave your message.</p>";
}
}
?>
</body>
</html>

弃用是应用于计算机软件功能、特性或实践的一种状态,表明应避免使用它,通常是因为它被取代

请看一下eregi的PHP手册。如您所见,它有以下警告:

从PHP 5.3.0开始,此函数已被弃用。非常不鼓励依赖此功能

再往下一页,有一些关于如何使用的建议:

从PHP5.3.0开始,eregi就被弃用了。建议的备选方案是使用i PCRE_无壳修改器进行preg_匹配


因此,您可以改用preg_match函数。

更简单,即使只是验证电子邮件地址:最好解释一下ereg和preg之间的区别,比如包含分隔符和不区分大小写的标志。