
DOMDocument::saveHTML 함수를 사용하여 HTML 문서를 저장할 때, HTML 태그가 일부 제대로 출력되지 않는 문제는 HTML 엔티티를 인식하지 못하는 문제로 인해 발생합니다.
예를 들어, `
` 태그는 HTML 엔티티로 인식되어 `
`이 아닌 `<br>`으로 출력됩니다.
이 문제를 해결하기 위해서는 HTML 엔티티를 인식하도록 설정해야 합니다.
PHP 5.4.0 이상 버전부터는 `libxml_use_internal_errors(true)` 함수를 사용하여 HTML 엔티티를 인식하도록 설정할 수 있습니다.
또한, `libxml_clear_errors()` 함수를 사용하여 이전에 발생한 에러를 지우고, `libxml_use_internal_errors(true)` 함수를 사용하여 HTML 엔티티를 인식하도록 설정한 후, `DOMDocument::saveHTML` 함수를 사용하여 HTML 문서를 저장할 수 있습니다.
예를 들어, 다음 코드를 실행하면 `
Hello World!
`가 `Hello World!
`로 출력됩니다.#hostingforum.kr
php
$html = '
Hello World!';
$dom = new DOMDocument();
$dom->loadHTML($html);
libxml_use_internal_errors(true);
echo $dom->saveHTML();
libxml_clear_errors();
또한, `DOMDocument::saveHTML` 함수를 사용할 때, `encoding` 옵션을 사용하여 HTML 문서의 인코딩을 설정할 수 있습니다. 예를 들어, 다음 코드를 실행하면 `
Hello World!
`가 `Hello World!
`로 출력됩니다.#hostingforum.kr
php
$html = '
Hello World!';
$dom = new DOMDocument();
$dom->loadHTML($html);
$dom->encoding = 'UTF-8';
echo $dom->saveHTML();
이러한 방법을 사용하여 HTML 엔티티를 인식하도록 설정하고, HTML 문서의 인코딩을 설정하여 HTML 태그가 제대로 출력되도록 할 수 있습니다.
2025-08-14 17:31