Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Как определить Цифры и Буквы в PHP

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Как определить буквы или цифры (или в перемешку) пришли на php форму например по такому запросу $id = $_GET['id'];
Например мне нужно что если цифры [0-9] то ничего не делать а если буквы или билеберда то предпринять действия
 
Как это сделать я чтото таких функций в php не нашел...
Заранее благодарен

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 05:51 30-06-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nevi

Цитата:
Как это сделать я чтото таких функций в php не нашел...

www.php.net/is_int

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:24 30-06-2005
N Sensey N



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
рискну предположить что тебе нужно  
 
$id = intval($_GET['id']);

----------
sPaiz-Nuke - Free PHP CMS Web Design and Development Портал для израильтян

Всего записей: 1409 | Зарегистр. 01-10-2002 | Отправлено: 13:27 30-06-2005
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
$id = @$_REQUEST['id']*1;
в случае белиберды получишь 0(ноль)....

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 16:38 30-06-2005
nl2br



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
if(!is_numeric($_GET['id']))
{
  // Предпринимаем дествия
}
else
{
  // Ничего не делаем
}

Всего записей: 14 | Зарегистр. 17-06-2005 | Отправлено: 16:51 30-06-2005
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mamay
Почему не intval ?

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 18:45 30-06-2005
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ух спасибо всем огромное - но все же какой из способов выбрать ?

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 20:59 30-06-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nevi

Цитата:
Ух спасибо всем огромное - но все же какой из способов выбрать ?

is_numeric


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:06 30-06-2005
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо всем !
Особенно N Sensey N, nl2brи Cheery
я выбрал $id = intval($_GET['id']);

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 00:01 01-07-2005
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
$id = intval($_GET['id']);

Превратит код типа "23 мая 2005" в число 23
(строку типа "дата" в 0)
 
 

Цитата:
$id = @$_REQUEST['id']*1;

В таком случае можно и типа:
$id = @$_REQUEST['id']+0;
Но это не самый лучший способ (можно сказать "используем ошибку чтобы получить что нам надо")
 

Цитата:
if(!is_numeric($_GET['id']))  
{  
  // Предпринимаем дествия  
}  
else  
{  
  // Ничего не делаем  
}

Самый простой и правильный способ, если надо именно проверить, что введено число или нет.

----------
The Abyss - UO, LA2, Ботва, BSFG

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 00:03 01-07-2005
Bezzz

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eregi ("^[0-9]*$", $_GET['id'])
true - если пусто или все цифры, без пробелов

Всего записей: 1071 | Зарегистр. 14-04-2005 | Отправлено: 12:35 01-07-2005
Say26



Скажи двадцать шесть
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Bezzz
Не надо использовать регулярки там, где они не нужны

Всего записей: 3576 | Зарегистр. 25-12-2003 | Отправлено: 22:07 02-07-2005
Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Say26
Я с вами согласен, но это одно из возможных вариантов, так что Bezzz-у надо сказать спасибо за предложенный вариант.

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 22:44 02-07-2005
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delphi6
Просто как вариант ещё = написать прогу на си которая проверяет число это или нет %)  
 
Плюс есть ещё десятки разных вариантов которые работают, но не рациональны.
 
А новичок, который не может сразу определить какой способ самый лучший - возьмёт и будет использовать нелогичный вариант.
 
Поэтому и не стоит давать такие варианты.

----------
The Abyss - UO, LA2, Ботва, BSFG

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 23:01 02-07-2005
Say26



Скажи двадцать шесть
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Delphi6

Цитата:
но это одно из возможных вариантов

Это тоже один из возможных вариантов:

Код:
 
function OnlyNumbers($string = '')
{
if ($string == '') return false;
$string = strval($string);
$Length = strlen($string);
for ($i = 0; $i < $Length; $i++)
{
if(ord($string{$i}) < 48 OR ord($string{$i}) > 57) { return false; }
}
return true;
}
 
 


Всего записей: 3576 | Зарегистр. 25-12-2003 | Отправлено: 11:55 03-07-2005
PetrPervy

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ttt




для этого есть раздел "Тестирование".. /Cheery/

Всего записей: 5 | Зарегистр. 19-04-2004 | Отправлено: 00:51 05-07-2005 | Исправлено: Cheery, 01:09 05-07-2005
Bezzz

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Say26
Вопрос стоял

Цитата:
если цифры [0-9]

is_numeric - хорошая функция, но на значение строки допустим 1.5, или 1e10, или, -15 или и т.д. она выдаст true, несмотря на то, что в строке присутствует символ - не цифра (точка, или e, или -, или и т.д.)

Всего записей: 1071 | Зарегистр. 14-04-2005 | Отправлено: 12:34 07-07-2005 | Исправлено: Bezzz, 12:39 07-07-2005
Say26



Скажи двадцать шесть
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Bezzz
Cheery ответил на вопрос во втором посте

Всего записей: 3576 | Зарегистр. 25-12-2003 | Отправлено: 21:04 09-07-2005
Bezzz

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Say26
is_int("012") - false. Несмотря на то, что все три символа - цифры.

Всего записей: 1071 | Зарегистр. 14-04-2005 | Отправлено: 08:04 11-07-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bezzz

Цитата:
хорошая функция, но на значение строки допустим 1.5, или 1e10, или, -15 или и т.д. она выдаст true, несмотря на то, что в строке присутствует символ - не цифра (точка, или e, или -, или и т.д.)

а кто сказал, что 1.5 не число.. или 1e10 и так далее?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 08:10 11-07-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » Как определить Цифры и Буквы в PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru