Регулярные выражения для удаления тегов

Подборка регулярных выражений для удаления HTML тегов и атрибутов.

1

Удаление тегов

Удаление <style>...</style>.

$text = '<p>Текст <style color="#fff">стиль</style> текст</p>';
echo preg_replace('/\s?<style[^>]*?>.*?<\/style>\s?/si', ' ', $text);
PHP

Результат:

<p>Текст текст</p>

По аналогии теги <p>, <div> и <script>:

echo preg_replace('/\s?<p[^>]*?>.*?<\/p>\s?/si', ' ', $text);
echo preg_replace('/\s?<div[^>]*?>.*?<\/div>\s?/si', ' ', $text);
echo preg_replace('/\s?<script[^>]*?>.*?<\/script>\s?/si', ' ', $text);
PHP
2

Удаление атрибутов

$text = '<p class="text" style="margin: 0 0 0 0;" id="fid-123">текст</p>';
 
echo preg_replace('/\s?class=["][^"]*"\s?/i', ' ', $text);
echo preg_replace('/\s?style=["][^"]*"\s?/i', ' ', $text); 
echo preg_replace('/\s?id=["][^"]*"\s?/i', ' ', $text);
PHP

Результат:

<p style="margin: 0 0 0 0;" id="fid-123">текст</p>
<p class="text" id="fid-123">текст</p>
<p class="text" style="margin: 0 0 0 0;" >текст</p>

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

$text = '<p style="margin: 0 0 0 0;" class="text" id="fid-123">текст</p>';
echo preg_replace("/(<[a-z]).*?(>)/i", '\\1\\2', $text);
PHP

Результат:

<p>текст</p>

Удалить атрибуты только у определенных HTML тегов:

$text = preg_replace("/(<p).*?(>)/i", '\\1\\2', $text);
$text = preg_replace("/(<div).*?(>)/i", '\\1\\2', $text);
PHP
3

Удаление тегов в ячейках таблицы

Регулярные выражения удаляют теги <p> и <div>, но оставляет их содержание.

$text = '
<table>
	<tr>
		<td>text 1</td>
		<td><p>text 2</p></td>
		<td><div>text 3</div></td>
	</tr>
</table>';
 
// Удаление <p>
$text = preg_replace('/(<td[^>]*>)(.*)(<p[^>]*>)(.*)(<\/p>)(.*)(<\/td>)/i', '\\1\\2\\4\\6\\7', $text);
 
// Удаление <div>
$text = preg_replace('/(<td[^>]*>)(.*)(<div[^>]*>)(.*)(<\/div>)(.*)(<\/td>)/i', '\\1\\2\\4\\6\\7', $text);
 
print_r($text);
PHP

Результат:

<table>
	<tr>
		<td>text 1</td>
		<td>text 2</td>
		<td>text 3</td>
	</tr>
</table>
27.08.2019 59

Поделится

Другие публикации

К сожалению разработчики прекратили поддержку и разработку проекта, но PHPExcel все равно остается популярной...
В случаях где анонсы не заполнены, сформировать и вывести их можно несколькими способами...
Ниже приведён список MIME-заголовков и расширений файлов. В PHP скриптах, перед отправкой файлов в браузер,...
Сборник регулярных выражений с использованием preg_replace для изменения строк и текстов.