[Регулярки & Mod_Rewrite] Задай вопрос, получи ответ.

Discussion in 'PHP' started by .:EnoT:., 19 Nov 2008.

Thread Status:
Not open for further replies.
  1. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Ограничители шаблона отсутствуют, у меня в примере это |
     
  2. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Привет.

    Возможно ли переделать
    Code:
    www.site.com/index.php?view=ad&search=keywordhere
    
    в что то типа
    Code:
    www.site.com/keywordhere.html
    
    Спасибо
     
  3. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    PHP:
    <?php
    $str 
    'www.site.com/index.php?view=ad&search=keywordhere';
    preg_match_all('/www\.site.com\/index\.php\?view\=ad\&search\=(.*)/'$str$result);
    $str 'www.site.com/' $result[1][0] . '.html';
    echo 
    $str;
    ?>
    Есть строка
    PHP:
    <img src="http://cs11185.vkontakte.ru/u31704418/143220484/x_ec487e34.jpg" style="width: 604px; height: 403px; margin-top: 25px;" onmouseout="Photoview.hideTag()">
    Помогите выдернуть ссылку на изображение.
     
    #1603 0o Chris o0, 26 Oct 2011
    Last edited: 26 Oct 2011
  4. mironich:

    mironich: New Member

    Joined:
    7 Oct 2011
    Messages:
    25
    Likes Received:
    2
    Reputations:
    0
    #(src=")([/\d_\-a-z\.]*)("style="width: )#
     
  5. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    На выходе получаю пустой массив.
     
  6. mironich:

    mironich: New Member

    Joined:
    7 Oct 2011
    Messages:
    25
    Likes Received:
    2
    Reputations:
    0
    Поправил.
    Code:
    #(<img src=")([//\d\a-z\.\-_]*)(".style="width:)#
     
  7. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Помогите составить ворожения для удаления ссылок из текста:
    http://www.vk.com/id1
    Где:
    1) Не всегда присутствует часть "http://"
    2) Не всегда присутствует часть "www."
    3) Часть "vk.com" МБ "vkontakte.ru"
    4) Часть "/id1" начинается со знака "/" и заканчивается если встретится " "(Пробел) или конец строки (Что наступит раньше)

    add:
    Вместо "/" может быть "\/"
     
    #1607 НTL, 29 Oct 2011
    Last edited: 29 Oct 2011
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    НTL
    Code:
    preg_replace('~(http://)?(www\.)?(vk\.com|vkontakte\.ru)(/|\\/)[^ ]*~i', '', $in);
     
    _________________________
    1 person likes this.
  9. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    есть список маил:пасс
    нужно взять отдельно одно и второе
    делаю так

    preg_match("/(.*?)\:(.*?)+\n/i",$num ,$b);


    выводит такой ответ

    Array
    (
    [0] => маил@yahoo.com23456

    [1] => маил@yahoo.com
    [2] =>
    )

    поле где должен быть пасс всегда пустое, почему?

    //Gifts: отключил смайлики
     
    #1609 qaz, 29 Oct 2011
    Last edited by a moderator: 29 Oct 2011
  10. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz Потому что + здесь лишний:
    PHP:
    preg_match("/([^:]+):([^\n]+)/i",$num ,$b);
     
    _________________________
    2 people like this.
  11. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Оффтоп:
    qaz, а не проще, если это список, разделить так list($name, $pass) = explode(":", $num);
     
  12. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Есть регулярное выражение:
    Code:
    $String = preg_replace("~[^\\x30-\\x39,\\x41-\\x5A,\\x61-\\x7A]~u",'',$String);
    Убрать все кроме 0-9A-Za-z, как дописать еще А-Яа-яЁё?
    Если сделать так:
    Code:
    $String = preg_replace("~[^\\x30-\\x39,\\x41-\\x5A,\\x61-\\x7A,А-Я,Ё,а-я,ё]~u",'',$String);
    То может не работать если на сервере нету русского языка. Как писать 2 байта в регулярное выражения?
    Так не работает:
    Code:
    \\xD090-\\xD09F,\\xD081,\\xD0A0-\\xD0AF,\\xD0B0-\\xD0BF,\\xD191,\\xD180-\\xD18F
    Методом проб и ошибок было найдено решение:
    Code:
    $String = preg_replace("~[^\x30-\x39,\x41-\x5A,\x61-\x7A,\xD0\x90-\xD0\x9F,\xD0\x81,\xD0\xA0-\xD0\xAF,\xD0\xB0-\xD0\xBF,\xD1\x91,\xD1\x80-\xD1\x8F]~u",'',$String);
     
    #1612 НTL, 31 Oct 2011
    Last edited: 31 Oct 2011
    1 person likes this.
  13. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Пример строки:
    "Test (((("
    "Test123 ("
    "123("

    Помогите составить регулярное выражения для удаления символа "(" в конце строки
     
  14. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    print preg_replace("#\(+$#", "", $str);
     
    1 person likes this.
  15. tompson_

    tompson_ New Member

    Joined:
    1 Jul 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    .replace('(', ''); подставьте верный синтаксис своего языка
     
  16. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Skofield, спс работает

    Подскажите еще:
    1) Если в строке нету букв или цифр, а например только символы, то строка == ""

    Например в строке "testtesttesttesttest111testtesttesttest"
    Как удалить все что после "111" (вместе с "111") до конца строки?
     
    #1616 НTL, 6 Nov 2011
    Last edited: 6 Nov 2011
  17. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    НTL, print preg_replace("#\d.*#", "", $str);
     
  18. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Привет, форумчане. Мне нужна регулярка, которая вытягивала бы отсюда

    Code:
    <div style="padding-left: 50px; padding-right: 
    50px;"> <a 
    href="[B]/znachenie_familii/id/Abakumov[/B]">Абакумов</a>
    <br> <a 
    href="[B]/znachenie_familii/id/Abakshin[/B]">Абакшин</a>
    <br> <a 
    href="[B]/znachenie_familii/id/Abalakin[/B]">Абалакин</a>
    <br>
    .........................
    <a 
    href="[B]/znachenie_familii/id/Abalakov[/B]">Абалаков</a>
    <br> <a 
    href="[B]/znachenie_familii/id/Abashev[/B]">Абашев</a><br> 
    <a href="[B]/znachenie_familii/id/Abashin[/B]">Абашин</a>
    <br> </div>
    Вот то, что я выделил жирным нужно получить в массив данных. Подскажите какую функцию заюзать, и какую регулярку туда скормить. Заранее спасибо.
     
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Edward
    PHP:
    preg_match_all('~a 
    href="(/znachenie_familii/id/[^"]+)"~i'
    $in$out);
    var_dump($out[1]);
     
    _________________________
  20. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Помогите еще раз с регулярками. Нужна 1 функция для того, что б достать полность текст, который находится между тегами <title>, пример:

    Code:
    <html> <head> <title>[B]Фамилия Абалакин, 
    значение фамилии Абалакин, происхождение фамилии 
    Абалакин, история фамилии Абалакин[/B]</title> 
    </head>...
    И 2-я функция и регулярка, что б достать текст из такого фрагмента кода:

    Code:
    ...<script type="text/javascript" 
    src="http://pagead2.googlesyndication.com/pagead/sho
    w_ads.js"> </script> </div> [B]Абалака, оболока - так 
    назывались в Древней Руси облачение, одежда. 
    Фамилии Абалаков и Абалакин могли образоваться от
     наименования ремесла: шьющий одежду. 
    Родственные по смыслу фамилии: Портнов (портной), 
    Швалев (шваль - одежда). Абалаковы Виталий 
    Михайлович и Евгений Михайлович - братья, 
    альпинисты, в 1934 г. совершившие 
    первовосхождение на пик Ленина (Памир). Евгений 
    Михайлович первым поднялся на пик Коммунизма. В 
    его честь одна из памирских вершин названа пиком 
    Абалакова.[/B] <br><br> <table width="700"><tr><td>...
    
    То, что жирным, то нужно выдернуть. Пробовал сам решить таким образом например:

    PHP:
    preg_match'#<title>(.*)</title>#Uis'$code
    $title );
    Но у меня проблема в том, что выдергивается текст, вместе с тегами <title>. Заранее спасибо :)
     
Thread Status:
Not open for further replies.