در هر بار بروزرسانی 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; }