Как удалить все HTML-теги из строки на PHP/JavaScript?
Когда вы принимаете данные от пользователей, через ту же форму обратной связи, есть смысл обрабатывать передаваемые от них данные и получать на выходе чистый текст.
Как это можно сделать разными способами, я сейчас расскажу.
Как удалить все HTML-теги из строки на PHP?
В PHP существует функция под названием «strip_tags». С помощью нее можно быстро и просто удалить все HTML- теги из переменной.
Реализация:
<?php
$content = "<h1 style='padding: 0'>Hello, world!</h1>";
$content = strip_tags($content);
echo $content; // Выведет "Hello, world!"
?>
Если же вы хотите сохранить некоторые теги от удаления, пропишите их сразу после переменной, например, так:
<?php
$content = "<h1 style='padding: 0'>Hello, world!</h1><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br />Vivamus sed lacus vel diam consectetur rhoncus et eget justo.</p>";
$content = strip_tags($content, "<br><br /><p>");
echo $content; // Выведет "Hello, world!<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br />Vivamus sed lacus vel diam consectetur rhoncus et eget justo.</p>"
?>
В таком случае мы сохраняем теги <p> и <b>. У тегов, имеющих закрывающий тег, прописывать при сохранении его не нужно.
Обратите внимание, функция не проверяет HTML-разметку на валидность, и если есть незакрытые теги, то вы рискуете потерять обычный текст.
Как удалить все HTML-теги из строки на JavaScript?
В JavaScript мы напишем свою небольшую функцию, с помощью которой в последующем и будем обрабатывать полученные данные.
Реализация:
<script>
function strip(html) {
var tmp = document.createElement("div");
tmp.innerHTML = html;
return tmp.textContent || tmp.innerText;
}
var content = strip("<h1 style='padding: 0'>Hello, world!</h1>");
</script>
Этот пример работает на конкретной заданной переменной, вы же можете переделать его под полученное содержимое, например, из поля input.