Я использую html_entity_decode($row['Content'])
для отображения некоторых данных JSON
, содержащих HTML
в PHP
документе. Проблема в том, что некоторые возвращаемые данные имеют открытые теги HTML, такие как <strong>
которые затем переносятся на содержимое, отображаемое после.
Есть ли способ прервать HTML?
Если вы когда-либо принимаете необработанный HTML-код из внешнего источника для встраивания в свой сайт, вы всегда должны всегда переформатировать и переименовывать его в белый список. Вы не знаете, что может содержать этот сторонний HTML-код, и у вас нет гарантии, что он действителен; но на вашем сайте вы предположительно хотите, чтобы гарантированный действительный HTML с определенными ограничениями на его содержимое (или вы действительно хотите включить вложение произвольных тегов <script>
…?!).
Это означает, что вы хотите:
Предположительно, лучшая библиотека PHP, которая делает это, является очистителем HTML . Без использования библиотеки вы бы использовали DOMDocument
HTML-парсер, что-то вроде DOMDocument
для проверки и фильтрации содержимого, а затем встроенного DOMDocument::saveXML
для создания нового дезинфицированного HTML.