За последние 24 часа нас посетили 17967 программистов и 1582 робота. Сейчас ищут 1322 программиста ...

Обработка тегов ссылок в тексте

Тема в разделе "PHP для новичков", создана пользователем strider2038, 28 дек 2014.

  1. strider2038

    strider2038 Новичок

    С нами с:
    24 ноя 2014
    Сообщения:
    8
    Симпатии:
    0
    Добрый день, уважаемые форумчане!

    Столкнулся с задачей. Необходимо в тексте убирать все теги, кроме <a>. В тегах <a> необходимо убирать все атрибуты, кроме ссылки и прописывать атрибут target="_blank". С регулярными выражениями знаком плохо. В интернете нашел следующее выражение и составил программу

    $text = trim(strip_tags($text, '<a>'));
    preg_match_all("~\<a.*href=\"([h\/][^#].*?)\"~i", $text, $urls);
    if ($urls[0]) {
    $count = count($urls[0]);
    for ($i = 0; $i < $count; $i++) {
    $text = str_replace($urls[0][$i], '<a href="' . $urls[1][$i] . '" target="_blank"', $text);
    }
    }

    В массивах $urls[0] части текста от <a до последней кавычки атрибута href. В массивах $urls[1] содержимое атрибута href. Как сделать так, чтобы в $urls[0] было все до закрывающей скобки >? Сейчас в новую ссылку попадает все, что идет после последней кавычки атрибута href.

    Может быть сможете предложить какой-нибудь другой способ обработки тегов?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв