Автор Тема: Удаление атрибутов тега!  (Прочитано 3119 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ardzhan

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 205
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ardzhan.km.ru
Удаление атрибутов тега!
« : 21 Июля 2004, 10:16:45 »
Вообщем такая проблема. Сделал регулярное выражение, которое удаляет атрибуты из тегов:

preg_replace
("/(<[A-Z]+?)\\\\s(.*?)+(>{1}?)/is""$1$3"$ok);

Как сделать, чтоб оно не удаляло атрибуты colspan и rawspan.
« Последнее редактирование: 21 Июля 2004, 11:01:30 от Ardzhan »

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Удаление атрибутов тега!
« Ответ #1 : 22 Июля 2004, 11:37:59 »
Неидеальная ф-я удаления атрибутов (кроме href) из (приводил уже, вроде, как-то...), может, поможет:

function fncStripAttrsExceptHREF($strText) {

    
$strRegExp1 = \'~
        <\\\\s*a\\\\s+    # начало тэга <a>
        [^>]*       # мусор до href

        href\\\\s*=\\\\s* # начало атрибута href
        ([\\\\\\\\\'"]?)    # опциональные кавычки
        (\\\\S+)       # значение атрибута
        \\\\1          # такие же кавычки

        [^>]*       # мусор после href
        >           # конец тэга
    ~ix\';

    $strRegExp2 = \'~
        on(
            (dbl)?click                     |
            mouse(down|up|over|move|out)    |
            key(press|down|up)              |
            focus                           |
            blur
        )
    ~ix\';

    return
        preg_replace(
            $strRegExp2,
            \'BAD\',
            preg_replace(
                $strRegExp1,
                \'<a href="2" target="_blank">\',
                $strText
            )
        );

} # function fncStripAttrsExceptHREF
« Последнее редактирование: 22 Июля 2004, 11:48:13 от tserbis »

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля

Оффлайн Ardzhan

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 205
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ardzhan.km.ru
Удаление атрибутов тега!
« Ответ #3 : 22 Июля 2004, 11:53:13 »
млин, а если верстальщик извратится и сделает что-то типа:
..
Уже такая регулярка не сработает :(

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Удаление атрибутов тега!
« Ответ #4 : 22 Июля 2004, 12:02:06 »
Ardzhan
Во-первых, - ты бы попробовал раньше:
echo htmlspecialchars(fncStripAttrsExceptHREF(\'..\'), ENT_QUOTES);
Во-вторых - в любом случае она не идеальная, я же писал...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28