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

时间:2013-08-29 11:34:17

标签: php eregi

我正在尝试向数据库提交值但我收到错误消息

  

不推荐使用:函数eregi()已弃用   第20和27行的C:\ wamp \ www \ OB \ admin_add_acc.php

以下是代码:

<?php       

include 'db_connect.php'; 

if(isset($_POST['Submit']))           
{            
$acc_type=ucwords($_POST['acc_type']);
$minbalance=ucwords($_POST['minbalance']);                       
if (!eregi ("^[a-zA-Z ]+$", stripslashes(trim($acc_type))))//line 20 
{                 
echo "Enter Valid Data for Account Type!";                
exit(0);                 
}           
else 
{                  
if (!eregi ("^[0-9 ]+$", stripslashes(trim($minbalance))))//line 27
{                       

3 个答案:

答案 0 :(得分:18)

自PHP 5.3起,

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

请注意,在正则表达式中传递preg_match()修饰符时,i仅区分大小写。

include 'db_connect.php'; 
if(isset($_POST['Submit']))           
{            
    $acc_type=ucwords($_POST['acc_type']);
    $minbalance=ucwords($_POST['minbalance']);

    // Removed A-Z here, since the regular expression is case-insensitive                
    if (!preg_match("/^[a-z ]+$/i", stripslashes(trim($acc_type))))//line 20 
    {                 
        echo "Enter Valid Data for Account Type!";                
        exit(0);                 
    }           
    else 
    {                  
        // \d and 0-9 do the same thing
        if (!preg_match("/^[\d ]+$/", stripslashes(trim($minbalance))))//line 27
        {
        }
    }
} 

答案 1 :(得分:2)

来自Wikipedia

  

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

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

  

自PHP 5.3.0起,此功能已被弃用。非常不鼓励依赖此功能。

在页面下方有一些关于使用什么的建议:

  自PHP 5.3.0起,不推荐使用eregi()。带有i(PCRE_CASELESS)修饰符的preg_match()是建议的替代方法。

因此,您可以使用preg_match功能。

答案 2 :(得分:0)

您可以找到答案here in the manual。由于您使用的php版本中的弃用功能,您将收到该警告。您可以使用ergi代替preg_matchpreg match

手册