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

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

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

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    ЗДраствуйте еще раз к вам за помощью
    Есть текст.
    в нем встречаются такие бяки
    Собственно мне нужно взять только мыла? )) хелп плииииз )
     
  2. Martyr

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

    Joined:
    29 Jun 2008
    Messages:
    33
    Likes Received:
    7
    Reputations:
    0
    (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?php 
    $text 
    "
    текст текст текст текст текст текст текст текст 
    текст текст текст текст текст текст текст текст 
    <td >
    <a href='goTo'>[email protected]</a>
    </td>
    <a href='goTo'>77.220.77.220</a>
    </td>
    <td >
    <a href='goTo'>[email protected]</a>
    </td>
    <a href='goTo'>74.2250.717.2220</a>
    </td>
    текст текст текст текст текст текст текст 
    текст текст текст текст текст текст текст"
    ;
    preg_match_all('/[\w\-]+@[\w\-]+.\w+.\w+/'$text$out); 
    print_r($out); 
    ?>
    </pre>
     
  4. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    есть
    нужно вытащить именна\значения полей.
    делаю
    не вытаскивает значения, если
    то не берёт имена, если нет значения.
    втф?
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?php 
    $text 
    "
    <input type='text' name='n1' value='123'>
    <input type='text' name='n2' value=''>
    <input type='text' name='n3'>
    <input type='text' name=\"n3\">
    "
    ;
    preg_match_all("#<input.*name='(.*)'.*value='(.*)'|<input.*name='(.*)'|<input.*name=\"(.*)\"#"$text$out); 
    print_r($out); 
    ?>
    </pre>
     
    1 person likes this.
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    mr.The
    PHP:
    <?PHP
    $text 
    "
    <input type='text' name='n1' value='123'>
    <input type='text' name='n2' value=\"asdasd\">
    <input type='text' name='n3'>
    <input type='text' name=\"n3\">
    "
    ;

    preg_match_all('#<input[^<>]*name=([\'"])(?P<name>[^<>]*?)\1([^<>]*value=([\'"])(?P<value>[^<>\4]*?)\4)?#i',$text,$result,PREG_SET_ORDER);
    foreach(
    $result as $one)
    {
        echo 
    $one['name']."=".$one['value']."<br />\n";
    }

    ?>
     
    _________________________
  7. Zircool

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

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Помогите с регуляркой. Нужны все записи вида

    Cо страницы


    Пробую вот такую регулярку

    PHP:

    preg_match_all
    ('#<div class="num_comms"><a href="/News/Detail/id/(\d+)/cat/'.$simbol.'/">(\s+)<img src="(.*?)" alt="(.*?)" title="(.*?)">(\s+)</a>#is',$text,$results);



    Где переменная $simbol - это номер раздела, который берется из url раздела..
     
  8. Architek86

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

    Joined:
    20 Feb 2008
    Messages:
    80
    Likes Received:
    1
    Reputations:
    0
    Народ, помогите составить регулярку для preg_split (функция php, кто не в курсе).
    А именно: есть текст вида
    Надо его разбить в массив по символу |, причём, там, где этот символ экранируется (т.е. \|) надо пропускать и идти далее.. как... хелп, уже второй день никак не получается.

    Т.е. если разбить таким способом мой примерный текст, то должно быть так:

     
    #708 Architek86, 4 Nov 2009
    Last edited: 4 Nov 2009
  9. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Может, так?
    PHP:
    $a preg_split ('#(?<!\\\)\|#'$str);
     
    1 person likes this.
  10. Architek86

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

    Joined:
    20 Feb 2008
    Messages:
    80
    Likes Received:
    1
    Reputations:
    0
    krypt3r, спс, работает на ура!
     
  11. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    здраствуйте, есть текст:
    Code:
    <table style="width: 100%; border: none" cellspacing="0" cellpadding="0">
          <tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/9144/" class="all">Том Хэнкс</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/8887/" class="all">Робин Райт Пенн</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/3100/" class="all">Гэри Синиз</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/519/" class="all">Майкелти Уильямсон</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/13477/" class="all">Сэлли Филд</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/101656/" class="all">Ребекка Уильямс</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/101657/" class="all">Майкл Коннер Хэмпфри</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/69686/" class="all">Харольд Дж. Хертэм</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/101658/" class="all">Джордж Келли</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/8399/" class="all">Боб Пенни</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/19/film/448/" class="all">...</a></td></tr>
          
          </table>
    надо парсить все

    Code:
    <tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/8399/" class="all">Боб Пенни</a></td></tr>
    но выдерать только все что в <a></a> внутри...
     
  12. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?php 
    $arr 
    '<table style="width: 100%; border: none" cellspacing="0" cellpadding="0">
          <tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/9144/" class="all">Том Хэнкс</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/8887/" class="all">Робин Райт Пенн</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/3100/" class="all">Гэри Синиз</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/519/" class="all">Майкелти Уильямсон</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/13477/" class="all">Сэлли Филд</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/101656/" class="all">Ребекка Уильямс</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/101657/" class="all">Майкл Коннер Хэмпфри</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/69686/" class="all">Харольд Дж. Хертэм</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/101658/" class="all">Джордж Келли</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/8399/" class="all">Боб Пенни</a></td></tr><tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/19/film/448/" class="all">...</a></td></tr>
          </table>;'
    ;
    preg_match_all('#<tr><td.*style.*align=right><a.*href=.*class=.*>(.*)</a></td></tr>#Uis',$arr,$res);
    print_r ($res[1]);
    ?>
    </pre>
     
  13. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    спасибо, пашет)
     
  14. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Задача скрипта - найти в файле hosts.txt ссылку на хост, на котором запущен скрипт, и заменить её на $rstring, и вывести рандумно ссылки, но появилась какая-то загадочная проблема - на локалхосте все отлично работает, а когда залить на хост, то ничего не пашет. В чем может быть проблема?

    PHP:
    <?php

    $fname 
    'hosts.txt';
    $rstring 'hackersite.ru';

    $hosts preg_replace('#<a href="http://www\.' $_SERVER['HTTP_HOST'] .
        
    '">(.*)</a>#''<a href="http://www.' $rstring '">\1</a>'file($fname));

    foreach (
    array_rand($hostscount($hosts)) as $id)
        echo 
    $hosts[$id] . "|\r\n";

    ?>
    hosts.txt
    Code:
    <a href="http://wwww.google.com">Google</a>
    <a href="http://wwww.yandex.ru">Yandex</a>
    <a href="http://wwww.yandex.ru">Rambler</a>
    [color="Red"][B]<a href="http://wwww.myhost.ru">myhost</a>[/B][/color]
    
     
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    $_SERVER['SERVER_NAME']

    попробуй
     
  16. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Не пашет....
     
  17. OnArs

    OnArs Banned

    Joined:
    1 Aug 2008
    Messages:
    211
    Likes Received:
    13
    Reputations:
    1
    Здравствуйте, ув. Знатоки!

    Нужно получить все ссылки попарно в виде:
    ссылка - якорь

    Но есть НО:
    Что если поменяются местами или в теле ссылки есть другие теги? Пример:
    Code:
    <a href="http://site.ru/" rel="nofollow">Якорь</a>
    <a rel="nofollow" href="http://site.ru/"></a>
    <a rel="nofollow" id="ya23" href="http://site.ru/">Якорь</a>
    <a rel="nofollow" id="ya23" href="http://site.ru/" style="font: bold;">Якорь</a>
    <a rel="nofollow" id="ya23" class="olink" href="http://site.ru/" style="font: bold;">Якорь</a>
    Естественно обычный /href="(.*)" >(.*)<\/a>/ не подходит, как будет выглядеть нужный мне запрос?


    Заранее благодарен! :)
     
  18. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    есть файлы
    dehsg1.jpg dehsg2.jpg dehsg3.jpg dehsg4.jpg
    как получить имя только dehsg

    могут быть и так
    ne-+_.hsud1.jpg ne-+_.hsud2.jpg ne-+_.hsud3.jpg

    тогда нужно ne-+_.hsud
     
    #718 .::BARS::., 14 Nov 2009
    Last edited: 14 Nov 2009
  19. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    PHP:
    preg_match ('/(.+)\d+\.jpg$/'$str$m);
     
  20. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    не... не то... там не только .jpg
    сделал инче.... спасибо...
    чисто.расширение
    поотом вырезаю исходник - число.расширение= что хотим
     
Thread Status:
Not open for further replies.