Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   регулярное php (https://forum.antichat.xyz/showthread.php?t=105300)

barnaki 08.02.2009 17:19

регулярное 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 То, что после слеша (/) оставляем. Ибо тут уже не наше дело )
Вот вроде и все.

barnaki 08.02.2009 17:53

/^(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 не прокатит, вот так .

m0Hze 08.02.2009 18:38

:D
Go to php.net :)
parse_url();

AFoST 08.02.2009 18:44

Цитата:

Сообщение от barnaki
/^(http://|https://)?[a-zA-Z0-9@-_.!~*|'"]+\.[a-z]{2,6}[/]?[a-zA-Z0-9@-_.!~*|]?[\.]?(html|php|cgi|pl)?$/
то есть так хотя бы для второго уровня ?

ёбнуцо)) маленькая регулярка получилась :)))
я вот так делал:
PHP код:

    function checkInputHost($host){
        
preg_match("/^(http:\/\/)?([^\/]+)/i"$host$matches);
        return 
$matches[2];
    } 

если надо выводить с http:// то в функцию дописывай
PHP код:

return 'http://'.$matches[2]; 

ps регулярка взята с примеров одного из сайтов по php

_==wolf==_ 08.02.2009 18:57

а эта тема вообще для чего создана? http://forum.antichat.ru/thread92492.html

barnaki 08.02.2009 19:07

что значит
/^(http:\/\/)?([^\/]+)/i"
(http:\/\/)? это понятно
[^\/]+ это значит что все кроме \/ насоколько я понимаю . минимум 1 символ
то есть http://! пройдет проверку . нет ?
даже просто ! или % ее пройдет .

Doom123 08.02.2009 19:12

я понимаю что регулярки это круто .. ноо почему вы игнорируите просые способы?

http://il2.php.net/manual/en/function.parse-url.php

bombeg 08.02.2009 19:14

Цитата:

Только если это нормальный урл, то там @ не найдешь
найдешь.
http://user:password@domen.com/


Время: 12:04