как сохранитьтеги при использовании Dom в PHP для анализа HTML-документа? - PullRequest
5 голосов
/ 03 мая 2011

Я использую DOM в php, чтобы получить содержимое div на $node->nodeValue.Этот div имеет много тегов <br/> в своем содержимом, но после того, как я сохраню его в базе данных и выведу его в браузер, все теги <br/> будут заменены пробелами.Я хочу сохранить теги <br/>, как мне этого добиться?

Ответы [ 3 ]

8 голосов
/ 03 мая 2011

nodeValue возвращает только текстовые данные (если используется на элементах-узлах). Получить содержимое с помощью saveXML ()

$node->ownerDocument->saveXML($node);
2 голосов
/ 03 мая 2011

DOMNode::nodeValue будет возвращать только текстовое содержимое.

Поскольку <br /> является дочерним элементом, он не будет возвращен.

Лучше всего ставить

  1. Создать пустую временную строку
  2. Цикл по всем дочерним узлам в $node
  3. Получить разметку каждого дочернего узла с помощью DOMDocument::saveHTML()
  4. Объединить эту строку с вашей временной
  5. Сохранить временную строку в базе данных

Как-то так - http://www.php.net/manual/en/book.dom.php#89718

0 голосов
/ 03 мая 2011

Предполагая, что вы используете MySQL (поскольку вы не говорите), убедитесь, что вы используете функцию mysql_real_escape_string.Ответ доктора Молле может дать дальнейшее понимание.

http://php.net/manual/en/function.mysql-real-escape-string.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...