За последние 24 часа нас посетили 17860 программистов и 1286 роботов. Сейчас ищут 1526 программистов ...

формирования url

Тема в разделе "Регулярные выражения", создана пользователем wedest, 23 ноя 2006.

  1. wedest

    wedest Активный пользователь

    С нами с:
    5 июл 2006
    Сообщения:
    166
    Симпатии:
    0
    Не как не получаетса сделать вот такую штуку.
    мне надо обрабатывать урл посланый юзером и превести его к такому типу www.domain.com
    вот вырианты ввода и что из этого должно получитса
    domain.com => www.domain.com
    subdomain.domain.com => www.subdomain.domain.com
    domain.com/folder => www.domain.com/folder
    и также как проверить что то что он ввел это урл адрес
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    PHP:
    1. $url = "www.".$_GET['user_url']."";
    PHP:
    1. if ( isset($_GET['user_url']) and strlen($_GET['user_url']) >= 1 ) { // }
    оно?
     
  3. wedest

    wedest Активный пользователь

    С нами с:
    5 июл 2006
    Сообщения:
    166
    Симпатии:
    0
    Hight не, $_GET['user_url'] может при ти и с www, мне же надо умным способом проверить если есть www значит так и оставить если нет www до добавить.
    P.S. извени если плохо изложил мыслю
     
  4. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    по-быстрому сделал так:
    PHP:
    1.  
    2. <?php
    3. // 2006 (c) Hight
    4. // file: strpos.php
    5.  
    6. header("Content-Type: text/html; charset=utf-8");
    7. ?>
    8.  
    9. <form name="input_url" action="strpos.php" method="get">
    10. <input name="url" type="text">
    11. <input type="submit" value="Send">
    12. </form>
    13.  
    14. <br /><br /><br />
    15.  
    16. <?php
    17.  
    18. $find = "www";
    19.  
    20. if ( isset($_GET['url']) and strlen($_GET['url']) >= 1 )
    21. {
    22.     $stack = strpos($_GET['url'], $find);
    23.     if ( $stack !== false )
    24.     {
    25.         $url = $_GET['url'];
    26.         print($url);
    27.     }
    28.     else
    29.     {
    30.         $url = "www.".$_GET['url']."";
    31.         print($url);
    32.     }
    33. }
    34. else
    35. {
    36.     print("Введите "URL"");
    37. }
    38.  
    39. ?>
    40.  
    обрабатывает урлы вида: www.hight.ru , hight.ru и т.д.
    не помогает от урлов вида: pre.www.hight.ru
    pre = любые символы

    p.s. зато быстро работает =)
     
  5. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    гланды удалять можно и через рот...
    PHP:
    1. print "www.".preg_replace("/^www./i",'',$_GET['user_url']);
     
  6. wedest

    wedest Активный пользователь

    С нами с:
    5 июл 2006
    Сообщения:
    166
    Симпатии:
    0
    Hight
    avm
    спасибо агромное.
     
  7. mms

    mms Активный пользователь

    С нами с:
    16 дек 2006
    Сообщения:
    36
    Симпатии:
    0
    Помогите сделать вот это:
    Код (Text):
    1. [LINK]http://mail.ru[/LINK]
    превратить в
    Код (Text):
    1. <a href='http://mail.ru' target='_blank' class='msg'>http://mail.ru</a>
    Спасибо
     
  8. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?php
    2.     $s = "[LINK]http://mail.ru[/LINK]";
    3.     print preg_replace("/\[link\](.*?)\[\/link\]/is","<a href='\\1' target='_blank' class='msg'>\\1</a>",$s);
    4. ?>
     
  9. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. [LINK]'><script>alert()</script>[/LINK]
     
  10. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?php
    2.     $s = "[LINK]'><script>alert()</script>[/LINK]";
    3.     print preg_replace("/\[link\](.*?)\[\/link\]/ies","x('\\1')",$s);
    4.  
    5.     function x($url) {
    6.         $url=str_replace( array('>','<',"'",'"'), array('&gt;','&lt;','&quot;','&quot;'), $url );
    7.         return "<a href='{$url}' target='_blank' class='msg'>{$url}</a>";
    8.     }
    9. ?>
     
  11. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    avm
    PHP:
    1. <?php
    2.     $s = "[LINK]http://mail.ru[/LINK]";
    3.     print preg_replace("/\[link\](.*?)\[\/link\]/is","<a href='\\1' target='_blank' class='msg'>\\1</a>",$s);
    4. ?>
    simpson
    Код (Text):
    1. [LINK]'><script>alert()</script>[/LINK]
    avm
    PHP:
    1. <?php
    2.     $s = "[LINK]'><script>alert()</script>[/LINK]";
    3.     print preg_replace("/\[link\](.*?)\[\/link\]/ies","x('\\1')",$s);
    4.  
    5.     function x($url) {
    6.         $url=str_replace( array('>','<',"'",'"'), array('&gt;','&lt;','&quot;','&quot;'), $url );
    7.         return "<a href='{$url}' target='_blank' class='msg'>{$url}</a>";
    8.     }
    9. ?>
    Приятно наблюдать разговор... [​IMG]
     
  12. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2.     $s = '[LINK]"><script>alert()</script>[/LINK]';
    3.     print preg_replace('/\[link\](.*?)\[\/link\]/ise', '\'<a href="\'.htmlspecialchars("$1").\'" target="_blank" class="msg">\'.htmlspecialchars("$1").\'</a>\'', $s);
    4. ?>
    =]
     
  13. mms

    mms Активный пользователь

    С нами с:
    16 дек 2006
    Сообщения:
    36
    Симпатии:
    0
    Что лучше поставить? этот код?
     
  14. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Ну вобще можно проще:
    PHP:
    1. <?php
    2.     $s = htmlsecialchars("[LINK]'><script>alert()</script>[/LINK]");
    3.     print preg_replace("/\[link\](.*?)\[\/link\]/is","<a href='\\1' target='_blank' class='msg'>\\1</a>",$s);
    4. ?>
    5.  
     
  15. CoolShake

    CoolShake Активный пользователь

    С нами с:
    23 июл 2006
    Сообщения:
    44
    Симпатии:
    0
    [link]javascript:while(true)alert()[/link]