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 :: Валидация строки url

 PHP.SU

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


 Страниц (1): [1]   

> Без описания
todolan
Отправлено: 01 Января, 2014 - 17:21:26
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2014  


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




Здравствуйте народ, нужна регулярка для проверки строки. Тоесть в строке нужно пропускать слеш(/), точка, буквы английские, цифры. Это первый вариант, во втором варианте тоже самое только еще двоеточие. Заранее спасибо.
 
 Top
Deonis
Отправлено: 01 Января, 2014 - 17:46:45
Post Id



Посетитель


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


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




Пардон, но не проще ли так:
PHP:
скопировать код в буфер обмена
  1. filter_var('http://example.com', FILTER_VALIDATE_URL);
 
 Top
todolan
Отправлено: 01 Января, 2014 - 18:03:18
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2014  


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




Вариант такой:
PHP:
скопировать код в буфер обмена
  1.  
  2. define("PATHS", $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
  3.  
  4. echo PATHS;//как вариант держит в себе localhost/list/1
  5.  
  6. var_dump(filter_var(PATHS, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED))
  7.  
  8. Результат выводит [b]bool(false)[/b]
  9.  


Я манипулировал и с http://test.com/list/1 результат тот же bool(false)
 
 Top
Мелкий Супермодератор
Отправлено: 01 Января, 2014 - 18:09:59
Post Id



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


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


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




todolan пишет:
Я манипулировал и с http://test[dot]com/list/1 результат тот же bool(false)

todolan пишет:
FILTER_FLAG_QUERY_REQUIRED

Ну разумеется.


-----
PostgreSQL DBA
 
 Top
todolan
Отправлено: 01 Января, 2014 - 18:12:52
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2014  


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




без этой строки тоже самое bool(false)

(Отредактировано автором: 01 Января, 2014 - 18:13:51)

 
 Top
Deonis
Отправлено: 01 Января, 2014 - 18:27:23
Post Id



Посетитель


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


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




Посмотрите на примеры ниже и найдите, как говориться, отличия:
PHP:
скопировать код в буфер обмена
  1. // FILTER_VALIDATE_URL
  2. filter_var('http://somesite.com', FILTER_VALIDATE_URL); // http://somesite.com
  3. filter_var('http://какой-то-сайт.рф', FILTER_VALIDATE_URL); // false
  4. filter_var('http://#%$%#^^.com', FILTER_VALIDATE_URL); // false
  5. filter_var('somesite.com', FILTER_VALIDATE_URL); // false
  6. filter_var('torrent://somesite.com', FILTER_VALIDATE_URL); // torrent://somesite.com
  7. // FILTER_FLAG_PATH_REQUIRED
  8.         'http://somesite.com',
  9.         FILTER_VALIDATE_URL,
  10.         FILTER_FLAG_PATH_REQUIRED
  11. ); // false
  12.         'http://somesite.com/test',
  13.         FILTER_VALIDATE_URL,
  14.         FILTER_FLAG_PATH_REQUIRED
  15. ); // http://somesite.com/test
  16. // FILTER_FLAG_QUERY_REQUIRED
  17.         'http://somesite.com',
  18.         FILTER_VALIDATE_URL,
  19.         FILTER_FLAG_QUERY_REQUIRED
  20. ); // false
  21.         'http://somesite.com?test',
  22.         FILTER_VALIDATE_URL,
  23.         FILTER_FLAG_QUERY_REQUIRED
  24. ); // http://somesite.com?test
  25. // FILTER_FLAG_PATH_REQUIRED | FILTER_FLAG_QUERY_REQUIRED
  26.         'http://somesite.com/test?test',
  27.         FILTER_VALIDATE_URL,
  28.         FILTER_FLAG_PATH_REQUIRED | FILTER_FLAG_QUERY_REQUIRED
  29. ); // http://somesite.com?test
 
 Top
todolan
Отправлено: 01 Января, 2014 - 21:49:08
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2014  


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




А как получить последний элемент url например в ссылке есть число 2 http://test.com/list/2 без использования parse_url() так как она возвращает path /list/2 а мне нужно последний сегмент ссылки. Заранее спасибо
 
 Top
Deonis
Отправлено: 01 Января, 2014 - 23:53:58
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. $url = 'http://test.com/list/2/';
  2. echo end(explode('/',trim($url,'/')));
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB