Устаревший: функция eregi() устарела в

Я пытаюсь передать значения в базу данных, но я получаю сообщение об ошибке

Устарело: функция 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

Из Wikipedia:

Устаревание - это статус, применяемый к функции программного обеспечения, характеристике или практике, указывающей на то, что этого следует избегать, как правило, из-за того, что он заменяется.

Взгляните на руководство по PHP для eregi. Как вы можете видеть, оно имеет следующее предупреждение:

Эта функция была DEPRECATED с PHP 5.3.0. Опираясь на эту особенность, очень не рекомендуется.

Далее на странице есть несколько советов о том, что использовать вместо этого:

eregi() устарел с PHP 5.3.0. preg_match() с модификатором я (PCRE_CASELESS) является рекомендуемой альтернативой.

Таким образом, вы можете использовать preg_match.

Ответ 3

Вы можете найти ответ здесь, в руководстве. Поскольку его устаревшая функция в версии php, которую вы используете, вы получите это предупреждение. Вместо ergi вы можете использовать preg_match. Посмотрите руководство для preg match