регулярное php

Discussion in 'PHP' started by barnaki, 8 Feb 2009.

  1. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    надо написать регулярное для проверки url
    но я пишу всегда так
    www.someword.some
    кто то пишет
    /newthread.php
    под какой формат писать
    и стоит ли его вообще писать
    если под оба формата написать одно туда подподает почти все
    посоветуйте
     
  2. vikseriq

    vikseriq Elder - Старейшина

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Окей, проверка URL:
    1 В начале может быть, а может и нет http:// || https://
    2 Далее идет что-то, разделенное точками. Как минимум: xx.xx . из символов - тире, точки, буквы и цифры.
    3 То, что после слеша (/) оставляем. Ибо тут уже не наше дело )
    Вот вроде и все.
     
  3. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    /^(http://|https://)?[a-zA-Z0-9@-_.!~*|'"]+\.[a-z]{2,6}[/]?[a-zA-Z0-9@-_.!~*|]?[\.]?(html|php|cgi|pl)?$/
    то есть так хотя бы для второго уровня ?
     
    #3 barnaki, 8 Feb 2009
    Last edited: 8 Feb 2009
  4. vikseriq

    vikseriq Elder - Старейшина

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Ну где-то да. Только если это нормальный урл, то там @ не найдешь, да и проверну на расширение файла зря делаешь. Оставляй все после слеша без изменений. иначе microsoft.com/index.aspx не прокатит, вот так .
     
    1 person likes this.
  5. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    ёбнуцо)) маленькая регулярка получилась :)))
    я вот так делал:
    PHP:
        function checkInputHost($host){
            
    preg_match("/^(http:\/\/)?([^\/]+)/i"$host$matches);
            return 
    $matches[2];
        }
    если надо выводить с http:// то в функцию дописывай
    PHP:
    return 'http://'.$matches[2];
    ps регулярка взята с примеров одного из сайтов по php
     
    2 people like this.
  6. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    а эта тема вообще для чего создана? /thread92492.html
     
  7. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    что значит
    /^(http:\/\/)?([^\/]+)/i"
    (http:\/\/)? это понятно
    [^\/]+ это значит что все кроме \/ насоколько я понимаю . минимум 1 символ
    то есть http://! пройдет проверку . нет ?
    даже просто ! или % ее пройдет .
     
    1 person likes this.
  8. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    я понимаю что регулярки это круто .. ноо почему вы игнорируите просые способы?

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

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    найдешь.
    http://user:password@domen.com/
     
  10. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Наверное потому, что там ясно указано:
     
    1 person likes this.
  11. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    astrologer а подумать что слабо чтоле? ...

    еси в массиве пуст [host] то это не валидный урл или вы мля думать не умеете?


    if(!isset($url['scheme']) || !isset($url['host']))
    exit('Ошибка блять');
     
    #11 Doom123, 8 Feb 2009
    Last edited: 8 Feb 2009
  12. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    2 Wolf просто так удобнее . можно разобратся . а в куче 1 ответ . и все след вопрос. а так можно посоветоватся и попросить чтобы объяснили не напрягая других людей.
    тем что 10 ответов на 1 твой кажушейся тебе сложным вопрос.
     
  13. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    <?
    
    print_r(parse_url('-://-'));
    
    ?>
     
    1 person likes this.