php, замените код на php 5.3 совместимый код - PullRequest
0 голосов
/ 19 мая 2011

мне нужно переписать эту функцию, чтобы она была совместима с php 5.3

function fns_data($address)
{
if (ereg("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $address))
{return true;}
return false;
}

кто-нибудь может помочь?

спасибо

Ответы [ 3 ]

3 голосов
/ 19 мая 2011

Ознакомьтесь с filter_var (), новым для PHP в версии 5.2.0:

function fns_data($address)  {  
    return filter_var($address, FILTER_VALIDATE_EMAIL);
}
1 голос
/ 19 мая 2011

В общем, изменить ereg на preg (обычно) так же просто, как переименовать его в preg_match и добавить / в начало и конец шаблона. Поскольку ваш шаблон (относительно) прост:

function fns_data($address) {
   if (preg_match('/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/', $address)) {
       return true;
   }
   return false;
}
0 голосов
/ 19 мая 2011

Прежде всего, не используйте ereg, а preg_replace, и используйте правильное регулярное выражение электронной почты, как этот:

function fns_data($address) {
    if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $address))
        return true;

    return false;
}

, еще лучше, теперь вы можете использовать filters :

function fns_data($address) {
    return filter_var($address, FILTER_VALIDATE_EMAIL);
}
...