2014-09-20 4 views
-3

Мой вопрос очень простой, также, возможно, есть на этом форуме, но я не нашел ответа. У меня есть ссылка: /profile/1 Как правильно проверить последний (int) параметр. Он должен быть положительным целым числомКакая правильная проверка URL?

+2

Привет Алиса. Стоит отметить, что этот сайт немного отличается от других сайтов в Интернете. Самое большое различие заключается в том, что мы стараемся побуждать акистов показать, что они пробовали в своем вопросе, - если вы можете показать код, который действительно помогает, и это тоже хорошая практика! У вас возникли проблемы с извлечением номерной части (1) или при определении, является ли она int? – halfer

ответ

1

Просто используйте \d+ в обычном выражении. Это проверит только положительные целые числа. Чтобы проверить негатив, вам нужно добавить - перед ним, поэтому проблем нет.

Чтобы проверить весь URL, сделайте следующее:

https?:\/\/.+\/profile/\d+ 
+0

@Alice помогло? –

0
is_int($valueFromURL) 

Вернется истинным или ложным.

EDIT Чтобы проверить, является ли оно положительным, просто используйте оператор if.

Пример кода:

if(is_int($valueFromURL) == true) && ($valueFromURL > 0) { 
    //Rock n' roll 
} 
+1

'== true' довольно избыточно. – Biffen

1

Если вы боитесь, что люди собираются, чтобы ввести SQL или что-то подобное, вы должны смотреть на подготовленные заявления или объектно-реляционного отображения.

Чтобы получить параметры с URL-адреса, вы должны использовать модуль маршрутизации или фреймворк, который включает в себя один. http://symfony.com/en/doc/current/book/routing.html

Если вы просто хотите, чтобы проверить, является ли переменная положительное целое число, вы можете просто сделать это так:

if (is_int($value) && ($value > 0)) 
+0

На мгновение. Если я URL-адрес, но введите строку, как быть? – Alice

Смежные вопросы