[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка правильности ввода URL
westgiggs
здрастуйте, народ как реализовать проверку на ввод домена типа http://www.sait.ru с помощью preg_match
есть начало но не работает так как надо:

preg_match("#http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/~*'%$.]+[-a-z0-9.]*\.#i", $url)




Спустя 4 минуты, 5 секунд (5.10.2010 - 15:54) DedMorozzz написал(а):
А так:
preg_match("#http://(?:w{3})?[A-z0-9]+.[A-z]{,6}\.#i", $url)

Спустя 14 минут, 35 секунд (5.10.2010 - 16:09) westgiggs написал(а):
Цитата (DedMorozzz @ 5.10.2010 - 12:54)
А так:
preg_match("#http://(?:w{3})?[A-z0-9]+.[A-z]{,6}\.#i", $url)

что означает ? {,6} BoT (?:w{3})? ?

Спустя 23 минуты, 52 секунды (5.10.2010 - 16:33) arvitaly написал(а):
<?php
$urls=array("http://t-a.ru","http://t_a.ru#sfgs","http://aaa.ru/aaaa");
$i=1;
foreach ($urls as $url)
{
echo '<p>' . $i . ' url первая функция ' . ( checkDomain($url) ? 'верно' : 'неверно' ) . '</p>';
echo '<p>' . $i . ' url вторая функция ' . ( checkDomain2($url) ? 'верно' : 'неверно' ) . '</p>';
$i++;
}
function checkDomain($url)
{
$p = parse_url($url);
return (!(isset($p['path']) || isset($p['user']) || isset($p['fragment']) || isset($p['pass']) || isset($p['query']) || empty($p['host']) || $p['scheme']!="http"));
}
function checkDomain2($url)
{
return preg_match("~^http://(?:[A-zА-я0-9_-]{1,255}\.)+[A-z]{2,10}/?$~i",$url);
}
?>

Спустя 2 минуты, 38 секунд (5.10.2010 - 16:36) DedMorozzz написал(а):
ой, последний слеш и точка - не нужны.
{,6} - от 0 до 6 символов. По хорошему, там должно быть : {2,6}
(?:w{3}) - 3 знака w. Ибо часто адрес начинаеться так: http://www.google.com, но не всегда. http://phpforum.ru. Поэтому стоит символ. Что будет 0 или 1 раз.
?: - грит, что индекс этой скобки(порядковый номер) не будет возвращаться. Что бы не считало лишним вхождением и элементом массива.

Спустя 4 минуты, 58 секунд (5.10.2010 - 16:40) westgiggs написал(а):
спасибо разобрался ++++++
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.