Удалить все атрибуты у тегов (PHP)

В PHP, удалить все атрибуты тегов HTML-кода можно при помощи функции preg_replace(), используя регулярное выражение: #(</?\w+)(?:\s(?:[^<>/]|/[^<>])*)?(/?>)#ui

Удалить все атрибуты

Например есть файл test.html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="keywords" content="атрибуты, удалыть, тег, php, регулярное выражение, pcre"> <meta name="description" content="Удалить все атрибуты у тегов при помощи регулярного выражения"> <title>Вырезать все атрибуты у тегов (PHP)</title> <style> .big { font-size: 20px; } .box { border: green 1px solid; padding: 10px; } </style> </head> <body onload="console.log('test')"> <table border="1"> <tr> <td colspan="2">PCRE</td> </tr> <tr> <td rowspan="2">Row span здесь был когда-то</td> <td>Тег TD без атрибутов</td> </tr> <tr> <td style="color: red;" class="big">Здесь были какие-то стили и класс...</td> </tr> </table> <p style="font-size: 16px; font-weight: bold;" id="First_p">Lorem ipsum...</p> <div class="box">Box class</div> </body> </html>

Необходимо удалить все атрибуты у тегов.

<?php $html = file_get_contents('test.html'); $html_no_attr = preg_replace("#(</?\w+)(?:\s(?:[^<>/]|/[^<>])*)?(/?>)#ui", '$1$2', $html); echo $html_no_attr;

В результате будет выведен следующий HTML-код:

<!DOCTYPE html> <html> <head> <meta> <meta> <meta> <title>Вырезать все атрибуты у тегов (PHP)</title> <style> .big { font-size: 20px; } .box { border: green 1px solid; padding: 10px; } </style> </head> <body> <table> <tr> <td>PCRE</td> </tr> <tr> <td>Row span здесь был когда-то</td> <td>Тег TD без атрибутов</td> </tr> <tr> <td>Здесь были какие-то стили и класс...</td> </tr> </table> <p>Lorem ipsum...</p> <div>Box class</div> </body> </html>

Категории

ПрограммированиеPHPРегулярные выражения в PHPРегулярные выражения

Читайте также

Комментарии

Артём Фёдоров

Анжела Сапина, вообще-то функция strip_tags для удаления тегов, а не атрибутов.

Ответить
Анжела Сапина

http://php.net/manual/ru/function.strip-tags.php
Проще сделать через strip_tags($html);

Ответить