Исправить устаревшую функцию eregi в php? - PullRequest
0 голосов
/ 10 августа 2011

В настоящее время я использую функцию, чтобы выяснить, состоит ли строка только из чисел.Функция is_numeric обычно работает, но если строка содержит букву, она сломается.Вместо этого я пытаюсь:

function is_signedint($val)
{
    $val = str_replace(" ", "", trim($val));
    //line below is deprecated
    $bool = eregi("^-?([0-9])+$",$val);
    if($bool == 1)
        return true;
    else
        return false;
}

В любом случае, мне было интересно, как я могу заменить линию eregi для соответствия PHP6

Ответы [ 3 ]

2 голосов
/ 10 августа 2011
preg_match("~^-?([0-9])+$~", $val);

просто добавить разделители

0 голосов
/ 10 августа 2011

Вот пара вариантов

if ($val === strval(intval($val)))

if ($val == intval($val))

Я бы использовал первый метод, так как он проверяет значения и type. Вы не должны использовать регулярные выражения, если это действительно не нужно (или это может сдвинуть более 10 строк кода в 1).

0 голосов
/ 10 августа 2011
preg_match("/^-?([0-9])+$/i",$val);

без учета регистра i в качестве модификатора в конце

...