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

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

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

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

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    есть код

    при обращении к sub.site.ru данные тащит из site.ru/sub/

    а я хочу что бы при sub.site.ru тащил с site.ru/script?key=sub



    уже перечитал кучу документаций... но так и не получается замутить..

    и еще

    не в одной документации не встречается конструкция типа %1---%2 - что значат 3 тире?

    ------------------------------------------------

    или новый код что бы при обращении к sub.site.ru тащил с site.ru/script?key=sub
    и
    к www.sub.site.ru тащил с www.site.ru/script?key=sub
     
    #1421 .::BARS::., 10 Mar 2011
    Last edited: 10 Mar 2011
  2. BAGA4

    BAGA4 New Member

    Joined:
    17 Nov 2010
    Messages:
    26
    Likes Received:
    1
    Reputations:
    0
    Как спарсить такую ссылку?Сделайте пожалуйста регулятку что-бы парсило все такие ссылки на странице и выводило в переменную.
    http://cs5055.vkontakte.ru/u16168084/audio/aec9f337d54d.mp3
     
  3. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Если ты собираешься парсить с ВК то там нет таких ссылок, а вообще вот:
    PHP:
    <?php

    $str 
    'http://cs5055.vkontakte.ru/u16168084/audio/aec9f337d54d.mp3';

    if(
    preg_match('#(http://cs[0-9]{3,5}\.vkontakte\.ru/u\d+/audio/[0-9a-f]{12}\.mp3)#i'$str$m)) {
        
    var_dump($m[1]);
    }

    ?>
    вывод:
    Code:
    string 'http://cs5055.vkontakte.ru/u16168084/audio/aec9f337d54d.mp3' (length=59)
     
  4. .::BARS::.

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

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Но делает простой редирект, а хотелось бы чтобы сохранялся именно вид nick.lince.ru
     
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Следующий вопрос будет: друзья, почему у друзей пишет 404 ошибку по этим ссылкам?!
     
  6. .::BARS::.

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

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    помогите мне... или мои посты тухлые??? 4 дня мозг е*у
     
  7. .::BARS::.

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

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    вопрос решен... сделал через внутренний прокси =))
     
  8. -=Zhenek=-

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

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Как из

    <tr><td><div style="position: relative; float: left; width: 144px; height: 16px; background: url(i/place.png)"></div></td><td><font style="color: #813D20;">не в игре</font>

    <font style="color: #813D20;">, город Ковчег</font>


    Вытащить "Не в игре" , оно может принимать любое значение
    и город Ковчег

    Заранее благодарен
     
  9. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Zhenek
    PHP:
    preg_match_all('~<font style="color: .+">(.*)</font>~im',$text,$a);
       
    print_r($a);
     
  10. Гаврила

    Гаврила Elder - Старейшина

    Joined:
    24 Oct 2005
    Messages:
    273
    Likes Received:
    89
    Reputations:
    17
    Хелпаните с RewriteRule.
    Нужно убрать со всех html страниц расширение и заменить слешем.
    Пример: http://site.com/scyko.html
    После реврайта должно получаться: http://site.com/scyko/
     
  11. .::BARS::.

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

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10

    PHP:
    RewriteRule ^(.*).html$ /$1/

    как то так

    только перед .html слеш обратный
     
  12. otRock

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

    Joined:
    13 Aug 2008
    Messages:
    0
    Likes Received:
    5
    Reputations:
    0
    Будьте добры. Помогите с Mod_Rewrite. Ни с регулярками ни с этим модом не дружу, поэтому прошу о помощи :)

    Сделал я такое правило:
    Code:
    RewriteRule ^([A-Za-z0-9]*)([\/]?)$ index.php?page=$1 [L,QSA]
    Мне надо чтоб
    Code:
    http://mysite.ru/page1
    =
    http://mysite.ru/page1[COLOR=Red][B]/[/B][/COLOR]
    С тем правилом что я составил всё работает как и задумывалось, НО когда вконце строки слэш - на странице видно только текст. Не подгружаются ни css ни картинки в html код. Ссылки на все изображения и css относительные. Что я не так сделал?
     
    #1432 otRock, 14 Mar 2011
    Last edited: 14 Mar 2011
  13. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Есть страница на которой много текста в том числе
    PHP:
    </pre>
        <
    tr class='t' onclick="document.location.href='?page=ssh&id=A45C20A8153DB80A&count=10'">
            <
    td align="right" nowrap>&nbsp;ver_1001&nbsp;&nbsp;<font face='Fixedsys' color=#6303ae>A45C20A8153DB80A</font>        </td>

            
    <td><font style="font-size: 7pt;">&nbsp;09-Feb-2011 05:36:48&nbsp;<br>&nbsp;14-Mar-2011 17:04:52&nbsp;</td>
            <
    td>0</td>
            <
    td>3</td>
            <
    td>0</td>

        </
    tr>
    </
    pre>

        <
    tr  onclick="document.location.href='?page=ssh&id=AE39D40E4B76CA58&count=10'">
            <
    td align="right" nowrap>&nbsp;ver_1001&nbsp;&nbsp;<font face='Fixedsys' color=#cac1df>AE39D40E4B76CA58</font>        </td>
            
    <td><font style="font-size: 7pt;">&nbsp;12-Jan-2011 14:15:46&nbsp;<br>&nbsp;14-Mar-2011 17:00:28&nbsp;</td>
            <
    td>107</td>
            <
    td>38</td>

            <
    td>0</td>

        </
    tr>
    </
    pre>
    Мне надо выпарсить значения между id= и &count=10
    Чтобы в итоге получилось
    Code:
    A45C20A8153DB80A
    AE39D40E4B76CA58
    
    Пробую вот такую регулярку но в итоге ничего не получается.
    Code:
    $regular = '/page=ssh&id=(.+?)&count=10>/i';
     
  14. Radish

    Radish New Member

    Joined:
    9 Jan 2011
    Messages:
    20
    Likes Received:
    2
    Reputations:
    2
    $result[0][0] = page=ssh&id=A45C20A8153DB80A&count=10
    $result[0][1] = page=ssh&id=AE39D40E4B76CA58&count=10
    $result[1][0] = A45C20A8153DB80A //id1
    $result[1][1] = AE39D40E4B76CA58 //id2
    $result[2][0] = 10 //count1
    $result[2][1] = 10 //count2
     
  15. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Подскажите регулярку
    Имеем страницу в котором присуствует текст к примеру.
    Code:
     
    <font color="#dcdcdc" face="Fixedsys"> localhost - PuTTY<br>
    root<br>12345<br></font></td><td>
     
    <font color="#dcdcdc" face="Fixedsys">127.0.0.1- PuTTY<br>
    46654<br>Ditunc<br></font></td><td>
     
    <font color="#dcdcdc" face="Fixedsys">WinSCP Login<br>
    22<br>
    1G<br>
    60<br>
    22<br>
    connect %host %port\n<br>
    proxy<br>
    
    80<br>
    30<br>
    15<br>
    30<br>
    /tmp<br>
    0<br>
    0<br>
    100</font></td><td>
    
    Надо выпарсить данные между <font color="#dcdcdc" face="Fixedsys"> и </font></td><td>
    При этом все поля могут быть переноситься в случайных местах то есть где-то после color="#dcdcdc" а где-то после face="Fixedsys" и т.д. Html теги между этими строками надо оставить.
     
  16. Radish

    Radish New Member

    Joined:
    9 Jan 2011
    Messages:
    20
    Likes Received:
    2
    Reputations:
    2
    Для обозначения поиска много строчного ставится модификатор s.
    PS для поиска возможных переносов вставить \s* - возможный пробельный символ \t\v\r\n\f
    * - возможно его отсутствие.
     
    #1436 Radish, 15 Mar 2011
    Last edited: 15 Mar 2011
  17. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Спасибо все заработало.

    Подскажите еще как к примеру из 1 строки спарсить домен или ip

    Code:
    192.168.0.1 - Privet
    tuktuk - google.ru 
    
    Надо чтобы в итоге выпарсилось ip или домен.
     
  18. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    PHP:
    preg_match('#(.*)-.+#',$list,$a)
     
  19. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Там не всегда - между ними. Это я просто для примера...
    Там любая строка может быть.
    Ну так что нету идей?
     
    #1439 Rastamanka, 15 Mar 2011
    Last edited: 15 Mar 2011
  20. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Rastamanka а вы не пишите "для примера", чтобы не получить сферического коня в вакууме. Покажите все примеры исходных данных
     
    _________________________
Thread Status:
Not open for further replies.