已弃用:函数 eregi() 在 中已弃用

2022-08-30 22:10:22

我正在尝试将值提交到数据库,但我收到一条错误消息

已弃用:函数 eregi() 在 C:\wamp\www\OB\admin_add_acc.php 第 20 行和第 27 行中已弃用

代码如下:

<?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
{                       

答案 1

eregi() 从 PHP 5.3 开始被弃用,使用 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
        {
        }
    }
} 

答案 2

来自维基百科

弃用是应用于计算机软件功能、特征或做法的状态,指示应避免使用,通常是因为它已被取代。

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

此函数自 PHP 5.3.0 起已弃用。强烈建议不要依赖此功能。

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

eregi() 从 PHP 5.3.0 开始弃用。preg_match() 与 i(PCRE_CASELESS) 修饰符是建议的替代方法。

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


推荐