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

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

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

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    В php уже норм функц. добавили дабы не плодить ужасов в 10 строк.
     
  2. mmmmm

    mmmmm New Member

    Joined:
    8 Jul 2010
    Messages:
    5
    Likes Received:
    3
    Reputations:
    1
    А как сделать для десктопной проги?
    Ну то есть нужна чистая регулярка
     
    #1882 mmmmm, 24 Oct 2012
    Last edited: 24 Oct 2012
  3. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    mmmmm,
    Code:
    /\d+/\d+/\d+/\d+/(\d+)/\d+/\d+/
     
  4. mmmmm

    mmmmm New Member

    Joined:
    8 Jul 2010
    Messages:
    5
    Likes Received:
    3
    Reputations:
    1
    Skofield, что то опять не получилось: [​IMG]
    -
    Ну тогда значит её в реале проверю (фильтры в гугл аналитике делаю). Спасибо
     
    #1884 mmmmm, 25 Oct 2012
    Last edited: 25 Oct 2012
  5. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    mmmmm, я не знаю, на чем вы пишете, и соответственно, как там все работает.
    Но вот этот фрагмент (\d+) означает поиск подшаблона, в который и попадают нужные цифры. Поэтому, думаю, что нужно разобраться с функцией, которая осуществляет поиск по шаблону.
     
    1 person likes this.
  6. alfi

    alfi New Member

    Joined:
    4 Mar 2012
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Skofield. Да символы любые. Главное чтоб вид был e-mail;pass.
     
  7. Vip77

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

    Joined:
    29 Sep 2012
    Messages:
    281
    Likes Received:
    55
    Reputations:
    20
    есть строка <span>123</span>
    нужно достать из нее 123 как реализовать?
     
  8. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    HTML:
    <span>(.*)<\/span>
    PHP:
    preg_match("/<span>(.*)<\/span>/","<span>123</span>",$matches);
    var_dump($matches);
     
    _________________________
    1 person likes this.
  9. Vip77

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

    Joined:
    29 Sep 2012
    Messages:
    281
    Likes Received:
    55
    Reputations:
    20
    а так неправильно? :
    HTML:
    <span id="r(.*)_u\" class=\"(.*)\">(.*)<\/span>
     
  10. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Правильно, но зачем жрать лишние ресурсы пробивая класс, и у span есть еще аттрибуты, соответственно регулярка все не сьест.
     
  11. Vip77

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

    Joined:
    29 Sep 2012
    Messages:
    281
    Likes Received:
    55
    Reputations:
    20
    мне нужна такая-же как <span id="r(.*)_u\" class=\"(.*)\">(.*)<\/span>, ток исходя из
    HTML:
    <cite class="src">
    <a onmousedown="pxt('c4s', this.href, 3);" target="_blank" href="http://www.123.ru">123</a>
    </cite>
    (вывести http://www.123.ru)
     
    #1891 Vip77, 3 Nov 2012
    Last edited: 3 Nov 2012
  12. Vip77

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

    Joined:
    29 Sep 2012
    Messages:
    281
    Likes Received:
    55
    Reputations:
    20
    в perl
     
  13. Сбербанк

    Сбербанк New Member

    Joined:
    30 Sep 2012
    Messages:
    24
    Likes Received:
    2
    Reputations:
    0
    Помогите с регуряркой на php, есть переменная:
    $str = 'рандомная информация рандомная информация рандомная информация 123456789012345 1234 123 рандомная информация рандомная информация';
    То есть из рандомной информации необходимо вытащить число по длине всегда 15 цифр, цифры конечно тоже рандомные, но тут уникальность в 15 цифрах, больше такое значение нигде в строке не встречается.
    А после этого числа сразу идут ещё рандомные числа через пробел, длинна следующего числа всегда 4, а длинна третьего всегда 3, то есть надо составить регулянку которая вытянула бы из строки в разные переменные нужные данные.
    $str1 = '123456789012345';
    $str2 = '1234';
    $str3 = '123';
    Думаю алгоритм понятен, если кто поможет буду сильно благодарен, заранее спасибо.
     
  14. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Code:
    '#([0-9]{15}) ([0-9]{4}) ([0-9]{3})#Uis'
     
  15. Zombi ****

    Zombi **** Elder - Старейшина

    Joined:
    4 Apr 2009
    Messages:
    166
    Likes Received:
    183
    Reputations:
    17
    как мне отредиректить
    идет переход на
    http://site.ru/tds/go.php?sid=20 а его надо отредиректить на

    http://site2.pro/tds/go.php?sid=24

    чтото не канает

    RewriteEngine On
    RewriteRule ^/tds/go.php?sid=20 (.*)$ http://site2.pro/tds/go.php?sid=24 [L,QSA]

    в чем ошибка? и как реальзовать сабж?
     
  16. dotMX

    dotMX New Member

    Joined:
    4 Dec 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Здраствуйте.
    Есть строчка с текстом такого содержания:
    нужно регуляркой убрать nickname и двоеточие после него. Никнэйм может быть из любых букв и цифр. Так же это никнейма может и не быть. Спасибо.
     
  17. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    у берется все что находится до двоеточия:
    PHP:
    $value "nickname: текст текст текст ...";
             
    $text preg_replace("/(.*):/"""$value);
            echo 
    $text;
    вывидет :
    но если к примеру такой текст для фильтрации поставить:
    то вывидет "текст ..."
     
    _________________________
  18. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    Жадина )))
    PHP:
    $value "nickname: текст текст текст ...";
             
    $text preg_replace("/([^:]*):/"""$value);
            echo 
    $text;
    не жадная регулярка. и работать будет правильно, до первого двоеточия.
     
    _________________________
    1 person likes this.
  19. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    RewriteRule делают внутренние редиректы запроса, а не редиректят запрос как таковой. В твоём случае
    Code:
    Redirect /tds/go.php?sid=20 http://site2.pro/tds/go.php?sid=24
    Либо если с регкляркой
    Code:
    RedirectMatch ^/tds/go.php?sid=(.*)$ http://site2.pro/tds/go.php?sid=$1
    Redirect и RedirectMatch так же умеют подставлять нужный код ответа например
    Code:
    Redirect 302 /tds/go.php?sid=20 http://site2.pro/tds/go.php?sid=24
     
    _________________________
  20. Strilo4ka

    Strilo4ka

    Joined:
    5 Apr 2009
    Messages:
    709
    Likes Received:
    729
    Reputations:
    948
    Был вчера еще предложен такой вариант этому человеку:

    Code:
    RewriteEngine on
    RewriteCond %{QUERY_STRING} =sid=20
    RewriteRule ^tds/go\.php$ http://site2.pro/tds/go.php?sid=24 [R,L]
     
Thread Status:
Not open for further replies.