DOMDocument экранирование конечных символов в PHP - PullRequest
0 голосов
/ 22 сентября 2011

У меня проблема с классом DOMDocument.Я использую этот класс PHP для редактирования HTML-шаблона.У меня есть в этом шаблоне этот метатег:

<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>

Но после редактирования, хотя я не редактировал этот тег, он экранирует конечный символ "/" и не работает.Это скрипт:

$textValue = $company.'<br />'.$firstName.' '.$lastName.'<br />'.$adress;

$values = array($company, $firstName.' '.$lastName, $adress);

$document = new DOMDocument;

$document->loadHTMLFile($dir.'temp/OEBPS/signature.html');

$dom = $document->getElementById('body');
for ($i = 0; $i < count($values); $i++) {
$dom->appendChild($document->createElement('p', $values[$i]));
}


$document->saveHTMLFile($dir.'temp/OEBPS/signature.html');
echo 'signature added <br />';

1 Ответ

1 голос
/ 22 сентября 2011

Пожалуйста, посмотрите ответ на этот вопрос: Почему PHP DOM не включает косую черту в самозакрывающихся тегах?

Короче, DOMDocument->saveHTMLFile() выводит свою внутреннюю структуру как обычнуюHTML вместо XHTML.Если вам абсолютно необходим XHTML, вы можете использовать DOMDocument->saveXMLFile(), который будет использовать самозакрывающиеся теги.Единственная проблема этого метода заключается в том, что некоторые теги HTML не могут использовать самозакрывающиеся теги, такие как <script> и <style>, поэтому вам необходимо поместить пробел в их содержимом, чтобы они не использовали самозакрывающиеся теги.1010 * Я бы порекомендовал просто игнорировать проблему, если только вы не обязательно исправите ее.Самозакрывающиеся теги являются пережитком XHTML и не используются в HTML5 .

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