Удаление лишних атрибутов HTML-тегов

Удаление лишних атрибутов HTML-тегов

Допустим, есть HTML-код

1
2
3
<img src="12" height="14%"/>
<p style="15" id="333">Text</p>
<h1 id="a">H1</h1>

Где в нем видим различные атрибуты HTML-тегов (src, height и так далее…). Некоторые из этих атрибутов, естественно, нам не нужны и их необходимо удалить.

Для удаления лишних атрибутов HTML-тегов используется макрос шаблона вывода [CLEARTAGSATTRS]

1
2
3
[CLEARTAGSATTRS(img:src,title|a:href)]<img src="12" height="14%">
<p style="15" id="333">Text</p>
<H1 id="a">H1</H1>[/CLEARTAGSATTRS]

В результате работы которого мы получим

1
2
3
<img src="12">
<p>Text</p>
<H1>H1</H1>

Как видим, лишние атрибуты HTML-тегов были удалены из кода. Что и требуется!


Параметрами макроса является строка img:src,title|a:href (которая прописывается в круглых скобках).

Формат строки параметров следующий: имя_тега:атрибут_тега_1,атрибут_тега_2,атрибут_тега_3…|следующее_имя_тега:атрибут_тега_1…

Как видим, сначала прописывается имя HTML-тега (img, p, h1…) затем ставится двоеточие и после него перечисляются атрибуты тега (src, height). Каждые следующие сеты имен и атрибутов тегов прописываются в том же формате через разделитель (символ вертикальной черты).

Примечание: Оператор строки параметров all служит для обозначения сразу всех имен тегов или всех имен атрибутов

1
2
3
img:all (не удалять все атрибуты тегов img)
a:all (не удалять все атрибуты тегов a)
all:src,href,id (не удалять атрибуты src, href и id, которые могут быть расположены в любых тегах)



Макрос [CLEARTAGSATTRS] удаляет атрибуты HTML-тегов в двух режимах:

1) Удаление лишних атрибутов у всех HTML-тегов (стандартный режим)
2) Удаление лишних атрибутов только у перечисленных HTML-тегов (режим {target})

В обоих режимах происходит удаление всех лишних атрибутов HTML-тегов (кроме перечисленных). Отличие режимов состоит в том, что в стандартном режиме (1) происходит чистка всех HTML-тегов, а в режиме {target} (2) – только перечисленных (остальные HTML-теги остаются в неизменном виде)!!!


Допустим, есть задача удалить все атрибуты у всех тегов, кроме атрибутов src и title у тегов img, и кроме атрибутов id у тегов h1

1
2
3
[CLEARTAGSATTRS(img:src,title|h1:id)]<img src="12" height="14%">
<p style="15" id="333">Text</p>
<H1 id="a">H1</H1>[/CLEARTAGSATTRS]

В результате работы которого мы получим

1
2
3
<img src="12">
<p>Text</p>
<H1 id="a">H1</H1>

Как видим, были удалены все атрибуты у всех HTML-тегов (кроме перечисленных в параметрах).


Если нужно удалить лишние атрибуты ТОЛЬКО в перечисленных HTML-тегах, указываем оператор {target} 1 раз в любом месте строки параметров

1
2
3
[CLEARTAGSATTRS({target}img:src,title|h1:id)]<img src="12" height="14%">
<p style="15" id="333">Text</p>
<H1 id="a">H1</H1>[/CLEARTAGSATTRS]

В итоге получим:

1
2
3
<img src="12">
<p style="15" id="333">Text</p>
<H1 id="a">H1</H1>

Как видим, при активном режиме {target}, функция очистки атрибутов обработала только перечисленные в параметрах HTML-теги.


1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 2, средний балл: 3.00)

Loading...
Вы можете пропустить до конца и оставить ответ. Pinging в настоящее время не доступны.
Есть 2 коммент. к теме: “Удаление лишних атрибутов HTML-тегов”
  1. Djah says:

    Сергей, спасибо.
    Теперь зачистка стилей упрощена, и можно не делать кучу правил поиска-замены.

Написать комментарий к Djah

Пожалуйста, ознакомьтесь с правилами комментирования (причина УДАЛЕНИЯ некоторых комментариев)

Добавить изображение к комментарию (jpg)