چگونه : مشکل “Function eregi() is deprecated” را حل کنیم ؟

بدون دیدگاه

در هر بار بروزرسانی php تعدادی از توابع از رده خارج می شوند و تعدادی دیگر جایگزین آن . در بعضی از اسکریپت های قدیمی و برنامه های php ممکن است از تابع eregi استفاده شده باشد

if(!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $str)) {
    $msg = 'email is not valid';
}
else {
$valid = true;
}

و اگر این تابع را در نسخه های جدید php (از 5.3.0 به بعد) اجرا کنید ، با این خطا مواجه می شوید :

Deprecated: Function eregi() is deprecated in C:\wamp\www\OB\admin_add_acc.php on line 20 and 27

 راه حل

برای حل مشکل کافی است از تابع preg_match به همراه پارامتر “i” استفاده کنید . این پارامتر (i) در عبارات منظم (Regular Expressions) برای حساس بودن به حروف بزرگ و کوچک استفاده می شود .بنابراین اگر کد بالا را تصحیح کنیم به این شکل در می آید :

if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $str)) {
    $msg = 'email is not valid';
}
else {
$valid = true;
}

منبع

در همین رابطه :   5 موردی که باید درباره PHP 7 بدانید
دسته بندی : PHP

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *