不推荐使用:不推荐使用函数eregi()

时间:2013-12-28 21:47:45

标签: php

这是我在网站上试用联系表单时得到的结果:弃用:函数eregi()在第9行的/home/content/04/11965204/html/horizo​​n/One/contact.php中已弃用  消息已发送!

这是我的代码:请帮忙 - 谢谢

<?php

if(!$_POST) exit;

$email = $_POST['email'];

//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST

['email']) ? '' : 'INVALID EMAIL ADDRESS';

if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]
{2,}"."$",$email )){
    $error.="Invalid email address entered";
    $errors=1;
}

if($errors==1) echo $error;
else{
    $values = array ('name','email','message');
    $required = array('name','email','message');
    $your_email = "horizon.electronics.recyclers@gmail.com";
    $email_subject = "New Message: ".$_POST['subject'];
    $email_content = "new message:\n";

    foreach($values as $key => $value){
        if(in_array($value,$required)){
            if ($key != 'subject' && $key != 'company') {
                if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
            }
            $email_content .= $value.': '.$_POST[$value]."\n";
        }
    }

    if(@mail($your_email,$email_subject,$email_content)) {
        echo 'Message sent!'; 
    } else {
        echo 'ERROR!';
    }
}

?>

3 个答案:

答案 0 :(得分:2)

在PHP 5.3+中,不推荐使用eregeregi函数。替换

eregi('pattern', $string, $matches) 

使用

preg_match('/pattern/i', $string, $matches)

(第一个参数中的尾随i表示忽略并且与i中的eregi对应 - 只是在替换ereg调用时跳过。

但请注意新旧图案之间的差异! This page列出了主要的差异,但对于更复杂的正则表达式,您必须更详细地查看POSIX regex(由旧的ereg / eregi / split函数等支持)和{{之间的差异。 3}}

但是在你的情况下,没有必要担心,只需要做上面描述的替换。

答案 1 :(得分:1)

  

弃用是应用于计算机软件功能的状态,   通常,特征或实践表明应该避免   因为它被取代了。

自PHP 5.3起,

eregi()已弃用,请改用preg_match()

答案 2 :(得分:0)

您最好使用eregi()而不是使用已弃用的preg_match()函数或FILTER_VALIDATE_EMAIL来验证电子邮件地址,而使用了很多LESS代码< /强>

示例和替代方案:

$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Thank you. Your email is valid.";
  // The email address is valid
} else {

echo "INVALID EMAIL ADDRESS";
  // The email address is not valid
}

或使用倒置方法:!filter_var

if(!filter_var($email, FILTER_VALIDATE_EMAIL))
  {
  echo "INVALID EMAIL ADDRESS";
  }
else
  {
  echo "Your email is valid.";
  }