Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проверка с помощью регулярных выражений [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 [2] 3 4 »   

> Без описания
teddy
Отправлено: 13 Июля, 2013 - 19:51:48
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




alnik-75 пишет:
А как число 12345678 придет в POST ?

Да, придет число, без кавычек, но тип уже будет строковый. Т.е не int, а уже string
 
 Top
alnik-75
Отправлено: 13 Июля, 2013 - 19:59:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


Помог: 0 раз(а)




teddy пишет:
alnik-75 пишет:
А как число 12345678 придет в POST ?

Да, придет число, без кавычек, но тип уже будет строковый. Т.е не int, а уже string

Так, что тут нужно использовать?
 
 Top
AlexAnder
Отправлено: 13 Июля, 2013 - 20:00:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Цитата:
Так, что тут нужно не использовать?

is_integer


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
teddy
Отправлено: 13 Июля, 2013 - 20:04:00
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




alnik-75
Ну исходя из темы и ваших запросов, то использование is_integer будет более адекватным, нежели is_numeric

//Добавление к вышеуказанному коменту AlexAnder
Если $_POST-ом принимаете данные, тогда перед проверкой нужно будет написать $num = intval($_POST['num']);

А если в общем, то можно и регулярки и мой вариант, оба будут работать. Например я бы не стал делать это регулярками. Тоесть принцип такой: держимся как можно дальше от регулярок и используем другие функции которые позволяют решить задачу.

Если вариант безвыходный и вам нужен конкретный шаблон, который в PHP могут задать только регулярные выражения, то остается их использовать... Как например случай с email в прошлый раз, пример регулярки, которой я с вами поделился.

Мое мнение...

(Отредактировано автором: 13 Июля, 2013 - 23:31:46)

 
 Top
AlexAnder
Отправлено: 13 Июля, 2013 - 20:12:12
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Цитата:
случай с email

фтопку регэксп - fliter var есть

Цитата:
использование is_integer будет более адекватным, нежели is_numeric

teddy пишет:
alnik-75 пишет:
А как число 12345678 придет в POST ?

Да, придет число, без кавычек, но тип уже будет строковый. Т.е не int, а уже string

(Отредактировано автором: 13 Июля, 2013 - 20:12:26)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
teddy
Отправлено: 13 Июля, 2013 - 20:23:22
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




AlexAnder пишет:
фтопку регэксп - fliter var есть


PHP:
скопировать код в буфер обмена
  1. $email = "gdsgds'''//89.'@test.com";
  2.  
  3. if(filter_var($email, FILTER_VALIDATE_EMAIL))
  4. {
  5.         echo "The email address is valid ".$email;
  6. }
  7. else
  8. {
  9.         echo "The email address is invalid";
  10. }

Запускай Улыбка этот адрес будет принят как валидный. Я же говорю, что есть нужен "конкретный" шаблон, тогда уже регулярки...

А цитата к чему ? Я про мой предыдущий пост.. не понял )

(Отредактировано автором: 13 Июля, 2013 - 20:24:02)

 
 Top
Мелкий Супермодератор
Отправлено: 13 Июля, 2013 - 21:06:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




teddy пишет:
этот адрес будет принят как валидный

Дык он и есть валидный.


-----
PostgreSQL DBA
 
 Top
teddy
Отправлено: 13 Июля, 2013 - 22:14:56
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Мелкий пишет:
Дык он и есть валидный.

PHP:
скопировать код в буфер обмена
  1. $email = "gdsgds'''//89.'^+~*```!*~~~#!!!@test.com";

А это тоже валидный? ) Помоему нет... но фильтрвар его охотно принимает как валидный...

Но опять же, я имел ввиду то, что использование регулярнок как по мне - строго по назначению... Тоесть если можно обойтись, то обходимся. Пусть это будет не e-mail, а что нибудь другое.. Считаю, что если можно обойтись без них, то нужно обходиться... Как в данном случае например

(Отредактировано автором: 13 Июля, 2013 - 22:34:18)

 
 Top
alnik-75
Отправлено: 13 Июля, 2013 - 23:51:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


Помог: 0 раз(а)




Teddy!
Вот цитата из описания функции is_int, псевдонимом которой является is_integer()
is_int

(PHP 3, PHP 4, PHP 5)

is_int - определяет, является ли переменная integer.
Описание
bool is_int (mixed var)
Возвращает TRUE, если var является integer, FALSE - в ином случае.
Примечание: чтобы проверить, является ли переменная числом или числовой строкой (такой как ввод формы, который всегда является строкой), вы обязаны использовать is_numeric().
 
 Top
teddy
Отправлено: 13 Июля, 2013 - 23:54:27
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




alnik-75
Ну, раз мануал говорит, тогда вперед ) но тут скользкий момент. Мой пример был с переменной, при приеме данных $_POST-ом, если использовать данный пример с помощью is_integer, прежде необходимо сделать: $num = intval($_POST['num']); и все будет работать.

Я это чуть позже дописал, см выше.
 
 Top
alnik-75
Отправлено: 13 Июля, 2013 - 23:59:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


Помог: 0 раз(а)




просто я хочу разобраться)))))))) я не за циклился на этот нумерике. И никаких претензий к is_integer не имею. Мне просто хочется знать, что при приеме пост-данных нужно применять:
is_numeric() бех intval или is_integer с ним. Какая проверка в данном случае будет более корректной? У меня такое ощущение, что без разницы))))))
Хочется узнать это раз и навсегда)))))

(Отредактировано автором: 14 Июля, 2013 - 00:00:27)

 
 Top
teddy
Отправлено: 14 Июля, 2013 - 00:06:01
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




alnik-75
Ну тогда is_numeric, если $_POST-ом принимаете. Так как $_POST всегда возвращает строковый тип, даже если вы ввели число
 
 Top
alnik-75
Отправлено: 14 Июля, 2013 - 00:07:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


Помог: 0 раз(а)




teddy пишет:
alnik-75
Ну тогда is_numeric, если $_POST-ом принимаете. Так как $_POST всегда возвращает строковый тип, даже если вы ввели число

Этот совет не из-за того, что я к нему все время клонил?
 
 Top
esterio
Отправлено: 14 Июля, 2013 - 03:40:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




teddy
ну и зачем ети сложности если одна строка из регулярок или фильтров решает ету задачу на ура, а тут извращатся ещо нужно. Ну и во-вторых отличный шанс потреноватся на регулярках. Или по Вашему их вовсе не стоит учить? Я с етим вкорне не согласен, причем ТС имеет понятие что ето такое и как оно виглядит. А там практика, практика и еще раз практика.
 
 Top
LIME
Отправлено: 14 Июля, 2013 - 05:31:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)





(Добавление)
AlexAnder пишет:
фтопку регэксп - fliter var есть
который в случае email так же юзает регулярку
причем есть мнение что не самую удачную
а в остальном это удобно
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB