Просмотр полной версии : регулярное php
надо написать регулярное для проверки url
но я пишу всегда так
www.someword.some
кто то пишет
http://forum.antichat.ru/newthread.php
под какой формат писать
и стоит ли его вообще писать
если под оба формата написать одно туда подподает почти все
посоветуйте
vikseriq
08.02.2009, 17:25
Окей, проверка URL:
1 В начале может быть, а может и нет http:// || https://
2 Далее идет что-то, разделенное точками. Как минимум: xx.xx . из символов - тире, точки, буквы и цифры.
3 То, что после слеша (/) оставляем. Ибо тут уже не наше дело )
Вот вроде и все.
/^(http://|https://)?[a-zA-Z0-9@-_.!~*|'"]+\.[a-z]{2,6}[/]?[a-zA-Z0-9@-_.!~*|]?[\.]?(html|php|cgi|pl)?$/
то есть так хотя бы для второго уровня ?
vikseriq
08.02.2009, 18:18
Ну где-то да. Только если это нормальный урл, то там @ не найдешь, да и проверну на расширение файла зря делаешь. Оставляй все после слеша без изменений. иначе microsoft.com/index.aspx не прокатит, вот так .
:D
Go to php.net :)
parse_url();
/^(http://|https://)?[a-zA-Z0-9@-_.!~*|'"]+\.[a-z]{2,6}[/]?[a-zA-Z0-9@-_.!~*|]?[\.]?(html|php|cgi|pl)?$/
то есть так хотя бы для второго уровня ?
ёбнуцо)) маленькая регулярка получилась :)))
я вот так делал:
function checkInputHost($host){
preg_match("/^(http:\/\/)?([^\/]+)/i", $host, $matches);
return $matches[2];
}
если надо выводить с http:// то в функцию дописывай
return 'http://'.$matches[2];
ps регулярка взята с примеров одного из сайтов по php
_==wolf==_
08.02.2009, 18:57
а эта тема вообще для чего создана? http://forum.antichat.ru/thread92492.html
что значит
/^(http:\/\/)?([^\/]+)/i"
(http:\/\/)? это понятно
[^\/]+ это значит что все кроме \/ насоколько я понимаю . минимум 1 символ
то есть http://! пройдет проверку . нет ?
даже просто ! или % ее пройдет .
я понимаю что регулярки это круто .. ноо почему вы игнорируите просые способы?
http://il2.php.net/manual/en/function.parse-url.php
Только если это нормальный урл, то там @ не найдешь
найдешь.
http://user:password@domen.com/
astrologer
08.02.2009, 19:17
я понимаю что регулярки это круто .. ноо почему вы игнорируите просые способы?
http://il2.php.net/manual/en/function.parse-url.php Наверное потому, что там ясно указано: This function is not meant to validate the given URL, it only breaks it up into the above listed parts.
astrologer а подумать что слабо чтоле? ...
еси в массиве пуст [host] то это не валидный урл или вы мля думать не умеете?
if(!isset($url['scheme']) || !isset($url['host']))
exit('Ошибка блять');
2 Wolf просто так удобнее . можно разобратся . а в куче 1 ответ . и все след вопрос. а так можно посоветоватся и попросить чтобы объяснили не напрягая других людей.
тем что 10 ответов на 1 твой кажушейся тебе сложным вопрос.
astrologer
08.02.2009, 20:31
if(!isset($url['scheme']) || !isset($url['host']))
exit('Ошибка блять');<?
print_r(parse_url('-://-'));
?>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot