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

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

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

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    print_r($matches);
     
  2. Margin

    Margin New Member

    Joined:
    6 Apr 2009
    Messages:
    39
    Likes Received:
    0
    Reputations:
    0
    Тоже самое, не выводит ничего.
    Подразумеваю где-то ошибка в регулярке...

    вот html еще раз :
    HTML:
    <div class="clear_fix miniblock">
      <div class="label fl_l">ICQ:</div>
      <div class="labeled fl_l">номер</div>
    </div>
    нужно получить "номер"
     
    #1462 Margin, 30 Mar 2011
    Last edited: 30 Mar 2011
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Margin, http://forum.antichat.ru/thread267151.html
     
  4. 0xJah

    0xJah New Member

    Joined:
    23 Feb 2011
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    HTML:
    <div class="two-column">
    ...
    <noindex></noindex>
    
    ... - крупный многостройчный блок html кода, его нужно получить, раньше проблем не возникало, всегда так работало:
    HTML:
    <div class="two-column">(.*?)<noindex></noindex>
    в чём может быть трабл?
     
  5. .van$

    .van$ New Member

    Joined:
    17 Jan 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Попробуй использовать модификатор (?s)
     
  6. 0xJah

    0xJah New Member

    Joined:
    23 Feb 2011
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    К сожалению не помогло :(
     
  7. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    давай блок в исходном варианте, посмотрим.
     
  8. Yakim

    Yakim New Member

    Joined:
    19 Nov 2010
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    нужно заменять обращение к каталогу на обращение к файлу, вобщем хочу получить вид урл:
    some/path/m?
    что будет соответствовать в файловой системе:
    some/path/m.php?
    но урл не должен быть таким:
    some/path/m/?

    p.s. m - это не шаблон, будет использоваться конкретная строка


    upd.: разобрался, сделал так:
    Code:
    RewriteRule ^m$ m.php [L]
     
    #1468 Yakim, 8 Apr 2011
    Last edited: 8 Apr 2011
  9. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Добрый день. Подскажите кто знает.
    Получаю на php скрипт данные методом POST.
    Code:
    $time = trim($_POST["time"]);
    Необходимо чтобы была проверка на запись только в формате.
    Code:
    12:12:12
    12:12
    01:12
    2:12
    
     
  10. DTW

    DTW Banned

    Joined:
    11 May 2008
    Messages:
    221
    Likes Received:
    52
    Reputations:
    11
    Code:
    #(12:12:12)|(12:12)|(01:12)|(2:12)#s
    Code:
    #\b(12:12:12)\b|\b(12:12)\b|\b(01:12)\b|\b(2:12)\b#s
    если правильно понял
     
    #1470 DTW, 10 Apr 2011
    Last edited: 10 Apr 2011
  11. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    Code:
    #\d+:\d+[\:\d+]?#i
     
  12. YuNi|[c

    YuNi|[c Elder - Старейшина

    Joined:
    17 Sep 2006
    Messages:
    293
    Likes Received:
    33
    Reputations:
    18
    привет, ну я пока что в кодинге 0 так что уважаемые кодеры подскажите регулярку. Есть дампер скуля. Типа так ошибка:

    Code:
    Warning: MySQL error: Duplicate entry '[email protected]:password1' for key 1
    вот надо тока
    Code:
    [email protected]:password
    точнее все что идет внутри
    Duplicate entry '
    и
    1' for key 1

    друг сделал так:
    Code:
    if($lol=~m/Duplicate entry \'(.*)'/){print $1;}
    но чет не пашет. В ответе есть не только
    Code:
    [email protected]:password
    еще последуюшие ошибки тоже выводится((

    заранее спс
     
    #1472 YuNi|[c, 10 Apr 2011
    Last edited: 10 Apr 2011
  13. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    все работает же.
    PHP:
    #!/usr/bin/perl
    @arr = (
    "Warning: MySQL error: Duplicate entry '[email protected]:password1' for key 1",
    "Warning: MySQL error: Duplicate entry '[email protected]:pdfsword1' for key 1",
    "Warning: MySQL error: Duplicate entry '[email protected]:psgrd1' for key 1",
    "Warning: MySQL error: Duplicate entry '[email protected]:pasdffdrd1' for key 1",
    "Warning: MySQL error: Duplicate entry '[email protected]:dfdd1' for key 1",
    "Warning: MySQL error: Duplicate entry '[email protected]:fgfgfgf' for key 1"
    );
     foreach (@
    arr) {
    if(
    $_=~m/uplicate entry \'(.*:.*)'/){print $1. "\n";}
    }
    =>

     
    1 person likes this.
  14. -=Zhenek=-

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

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    PHP:
    $html '
    <tr>
    <td height="19" width="65" valign="middle" class="txt-w" align="right">&nbsp;
    10</td>
    <td valign="middle" class="txt" align="left"><img style="position: relative; float: left;" width=16 height=16 alt="Логотип Вольный отряд" border="0" src="http://resources.apeha.ru/upload/1_265.gif"><a alt="Сайт Вольный отряд"><div style="position: relative; float: left; cursor: pointer;" onClick="OpenSite(\'v-ot.ru\',113);">Вольный отряд</div></a></td>
    <td valign="middle" class="txt" align="center">390</td><td valign="middle" class="txt" align="center">10.5</td>

    <td>&nbsp;</td></tr>
    <tr>
    <td height="19" width="65" valign="middle" class="txt-w" align="right">&nbsp;
    9</td>
    <td valign="middle" class="txt" align="left"><img style="position: relative; float: left;" width=16 height=16 alt="Логотип OLYMP" border="0" src="http://resources.apeha.ru/upload/1_1344.gif"><a alt="Сайт OLYMP"><div style="position: relative; float: left; cursor: pointer;" onClick="OpenSite(\'www.olymp-clan.ru\',185);">OLYMP</div></a></td>
    <td valign="middle" class="txt" align="center">200</td><td valign="middle" class="txt" align="center">5</td>
    <td valign="middle" class="txt" align="center">1000</td>
    <td>&nbsp;</td></tr>
    <tr>
    <td height="19" width="65" valign="middle" class="txt-w" align="right">&nbsp;
    8</td>
    <td valign="middle" class="txt" align="left"><img style="position: relative; float: left;" width=16 height=16 alt="Логотип StaLkerZ" border="0" src="http://resources.apeha.ru/upload/clan100000071_462.gif"><a alt="Сайт StaLkerZ"><div style="position: relative; float: left; cursor: pointer;" onClick="OpenSite(\'www.stalkerz.biz\',91);">StaLkerZ</div></a></td>
    <td valign="middle" class="txt" align="center">350</td><td valign="middle" class="txt" align="center">2</td>
    <td valign="middle" class="txt" align="center">700</td>
    <td>&nbsp;</td></tr>
    <tr>
    <td height="19" width="65" valign="middle" class="txt-w" align="right">&nbsp;
    7</td>
    <td valign="middle" class="txt" align="left"><img style="position: relative; float: left;" width=16 height=16 alt="Логотип Мальтийский Орден" border="0" src="http://resources.apeha.ru/upload/clan100000064_622.gif"><a alt="Сайт Мальтийский Орден"><div style="position: relative; float: left; cursor: pointer;" onClick="OpenSite(\'malt-orden.info\',84);">Мальтийский Орден</div></a></td>
    <td valign="middle" class="txt" align="center">180</td><td valign="middle" class="txt" align="center">3</td>
    <td valign="middle" class="txt" align="center">540</td>
    <td>&nbsp;</td></tr>
    '
    ;

    preg_match_all('#<tr>
    <td height="19" width="65" valign="middle" class="txt-w" align="right">&nbsp;
    (.*)</td>
    <td valign="middle" class="txt" align="left"><img style="position: relative; float: left;" width=16 height=16 alt="(.*)" border="0" src="(.*)"><a alt="(.*)"><div style="position: relative; float: left; cursor: pointer;" onClick="OpenSite\((.*),(.*)\);">(.*)</div></a></td>
    <td valign="middle" class="txt" align="center">(.*)</td><td valign="middle" class="txt" align="center">(.*)</td>
    <td valign="middle" class="txt" align="center">(.*)</td>
    <td>&nbsp;</td></tr>#i'
    ,$html,$outmassiv); 

    print_r($outmassiv);
    Почему в массиеве данные собираются таким образом :

    ['1'] - массив первого подшаблона
    ---['1'] данные первого подшаблона из блока 1
    ---['2'] данные второго подшаблона из блока 2
    ...
    ---['х']

    а не наоброт

    ['1'] - массив первого блока
    ---['1'] данные первого подшаблона из блока 1
    ---['2']данные второго подшаблона из блока 1
    ...
    ---['х']
     
  15. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    .htaccess
    Code:
    RewriteEngine on 
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule ^(.*)$ lol.php?id=$1 [L,QSA]
    
    lol.php
    PHP:
    <?php
    if ( isset($_GET['id']) )
    {
        if(
    file_exist($_GET['id'])) print file_get_contents($_GET['id']);
        else die(
    'При обращении к странице произошла критическая ошибка');
    }
    else
    {
        print 
    'Главная страница';
    }
    ?>
     
    _________________________
    #1475 Expl0ited, 12 Apr 2011
    Last edited: 12 Apr 2011
    1 person likes this.
  16. -=Zhenek=-

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

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Помогите..

    Нужно спарсить отсюда : http://apeha.ru/newrating.shtml рейтинг сайтов.

    Использую так :

    PHP:
    function ccurl ($url,$post) {
    $ch curl_init("$url");
    curl_setopt  ($chCURLOPT_HEADERfalse);
    curl_setopt ($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    curl_setopt($chCURLOPT_TIMEOUT20);
    curl_setopt($chCURLOPT_VERBOSE1);
    curl_setopt($chCURLOPT_HEADER1);
    $result curl_exec($ch);
    //curl_exec($ch); // выполняем запрос curl
    curl_close($ch);
    $url="";$post="";
    return 
    $result;
    }

    $html ccurl("http://apeha.ru/newrating.shtml","");
    echo 
    $html;
    //$html = file_get_contents("123.txt");
    //$html = file_get_contents("http://apeha.ru/newrating.shtml");
    preg_match_all('#<tr>
    <td height="19" width="65" valign="middle" class="txt-w" align="right">&nbsp;
    (.*)</td>
    <td valign="middle" class="txt" align="left">(.*)<img style="position: relative; float: left;" width=16 height=16 alt="(.*)" border="0" src="(.*)"><a alt="(.*)"><div style="position: relative; float: left; cursor: pointer;" onClick="OpenSite((.*),(.*));">(.*)</div></a></td>
    <td valign="middle" class="txt" align="center">(.*)</td><td valign="middle" class="txt" align="center">(.*)</td>
    <td valign="middle" class="txt" align="center">(.*)</td>
    <td>&nbsp;</td></tr>#i'
    ,$html,$outmassiv); 

    print_r($outmassiv);

    Но возвращается пустой массив. Если исходный код странички сохранить в фаил и считать, то все нормально. В ответ тоже приходит нужный код, но причину того,что если делать запрос сервера,а он не парсит не могу выяснить(((

    Вот думаю может регулярка кривая?
     
  17. D1mka

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

    Joined:
    2 Jan 2008
    Messages:
    123
    Likes Received:
    14
    Reputations:
    2
    Помогите пожалуйста составить регулярку, что бы в переменную попадала строка test: class="gen">test</a>
     
  18. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    <?php
    $str = 'class="gen">test</a>';
    preg_match("#class=\"gen\">(.*?)</a>#", $str, $result);
    echo $result[1];
    ?>
     
    1 person likes this.
  19. Green [GSC]

    Green [GSC] New Member

    Joined:
    28 Oct 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте.

    В общем, дано:

    1. Вики-проект.
    2. Установлена MediaWiki в папку mediawiki.
    3. Ссылки на статьи были некрасивые, типа http://site.ru/mediawiki/index.php?title=Заглавная_страница
    4. С помощью .htaccess запилил RewriteRule ссылок статей на ссылки вида http://site.ru/wiki/Заглавная_страница

    Собственно, вот код
    Code:
    RewriteEngine On
    RewriteRule ^wiki/(.*)$ /mediawiki/index.php?title=$1[PT,L,QSA]
    RewriteRule ^wiki/*$ /mediawiki/index.php [L,QSA]
    RewriteRule ^/*$ /mediawiki/index.php [L,QSA]
    
    5. Обнаружился FAIL, т.к. на странице редактирования статей ссылка становилась вида http://site.ru/mediawiki/index.php?title=Заглавная_страница&action=edit

    Вопросы:

    1. Что записать в .htaccess, чтобы исправить 5-ый пункт из дано?
    2. И как сделать, чтобы ссылки на статьи были вида http://site.ru/Заглавная_страница?
     
  20. zebrum

    zebrum New Member

    Joined:
    27 Dec 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    Возникла очередная проблема
    Необходимо сделать регулярку многострокового поиска

    В общем есть такой кусок html кода

    Пример:
    HTML:
    ......
    <div class=Section1>
    1: alena
    2: petr
    3: alex
    4: nikita
    </div>
    ......
    Нужно регуляркой получить
    1: alena
    2: petr
    3: alex
    4: nikita



    PHP:
    preg_match("/<div class=Section1>(.+?)<\/div>>/Sis"file_get_contents($url), $m);
    print_r($m);
     
Thread Status:
Not open for further replies.