Странная проблема с регулярками

Тема в разделе "PHP", создана пользователем phillip, 22 дек 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    задача- в тексте тег <random keywords n> заменить на свой текст, с кейвордами. кейвордов n штук. Чтобы найти по тексту все вставки, пишу так

    PHP:
    preg_match_all('&<random keywords.+>&iUs'$text$tags);
    не работает! :ai:
    самое интересное- пробовал пробовал, ничо не выходит. начинает работать когда убираю <, то есть
    PHP:
    preg_match_all('&random keywords.+>&iUs'$text$tags);
    Потом когда все остальное сделал- вернулся к этому месту, и снова попробовал вернуть < в регулярку. Заработало!!!! Я сперва подумал что это я затупил чего-то, но нет. такая же проблема счас с другим тегом, <pics 3,4>
    PHP:
    preg_match_all('&<pics.+>&iUs'$text$tags);
    не работает, а
    PHP:
    preg_match_all('&pics.+>&iUs'$text$tags);
    работает.
    как так? :D
     
  2. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    работает и очень даже
    жругое дело, что с выводов в бразер результатов поиска случается лажа, потому что браузер скрывает непонятный ему тег
    PHP:
    <?php
    $text
    ='<pics 3,4>';
    preg_match_all('&<pics.+>&iUs'$text$tags);
    echo 
    '<pre>';
    echo 
    htmlspecialchars(print_r($tags,TRUE));//в таком формате наденный тег будет отображен
    echo '</pre>';
    ?>
    и вывод соответсвенно:
    Код:
    Array
    (
        [0] => Array
            (
                [0] => <pics 3,4>
            )
    
    )
    
    до этого был аналогичный вывод, но только в исходном коде страницы
     
    phillip нравится это.
Статус темы:
Закрыта.