Удалить неподдерживаемые теги HTML (Simple HTML Dom)Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Удалить неподдерживаемые теги HTML (Simple HTML Dom)

Сообщение Anonymous »

Я хотел бы удалить неподдерживаемые теги HTML, вставленные пользователями (система определяет, какой тег поддерживается), пример системы поддерживает только тег «div»:

Код: Выделить всё

Hello World
преобразуется в:

Код: Выделить всё

Hello World
Это мой код с Simple HTML DOM:

Код: Выделить всё

function main()
{
$content = 'Hello World';

$html = str_get_html($content);

$html = htmlParser($html);
}

function htmlParser($html)
{
$supportedTags = ['div'];

foreach ($html->childNodes() as $node) {
// Remove unsupported tags
if (!in_array($node->tag, $supportedTags)) {
$node->parent()->innertext = str_replace($node->outertext, $node->innertext, $node->parent()->innertext);
$node->outertext = '';
}

if ($node->childNodes()) {
htmlParser($node);
}
}

return $html;
}
Но что-то пойдет не так, если содержать несколько вложенных неподдерживаемых тегов, например:

Код: Выделить всё

Hello World !![/b][b]
он ​​будет преобразован в

Код: Выделить всё

Hello World !![/b]
но ожидаемый результат

Код: Выделить всё

Hello World !!
Каково решение? Стоит ли мне продолжать использовать Simple HTML DOM или найти другой способ решения этой проблемы?

Спасибо за детальное решение моей проблемы.

Подробнее здесь: https://stackoverflow.com/questions/520 ... e-html-dom
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»