Вырезать из переменной всё, кроме цифр

Статус
В этой теме нельзя размещать новые ответы.

Raccoon

Участник
Регистрация
31 Июл 2007
Сообщения
176
Реакции
9
Добрый день! Такой вопрос, есть переменная $id, в которой передаётся id материала. В целях безопасности необходимо вырезать всё, кроме цифр. В регулярных выражениях не силен, поэтому спрашиваю как это сделать. Спасибо.
 
А может не стоит просто вырезать цифры, а проверить на возможность приведения переменной к нужному типу? Ведь если var=2 корректно, то выдирание цифр из var=hacker233 вряд ли будет верным результатом.
 
Код:
$id = preg_replace('/\D/', '', $id);
но вообще я согласен с antidote, да и быстрее приведение типов чем regexp
 
Т.е.если is_numeric($id) возвращает 'False' тогда выдаём die('Ошибка'); или делаем $id = preg_replace('/\D/', '', $id);?
 
Лучше принять решение о том, что неверно. А то действия скрипта могут быть разными. Лучше попросить ввести данные еще раз чем потом разбираться что и где глючит.
 
+1 за отсутствие необъодимости чтото вырезать.
regexp в этом случае микроскоп а переменная - гвоздь.
делайте
PHP:
settype($id,"integer");
проверки делать тоже избыточно - зачем сообщать о ошибке человеку который явно пытается всунуть некорректные данные.
settype быстро сделает или ноль или вернет число.
 
не совсем согласен. если $id может иметь значение 0, то settype тут не является корректным.

UPD к тому же
смотри в examle
PHP:
<?php
$foo = "5bar"; // string
settype($foo, "integer"); // $foo is now 5   (integer)
?>
В $foo запишется 5. Это как раз то, чего хотел ТС!
 
Да! Спасибо!
 
может просто intval() ?
 
$id += 0;
если в $id число - то оно не изменится. иначе в общем случае будет 0
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху