이 질문은 DOMDocument로 작업할 때 발생하는 일반적인 문제인 HTML, 본문 및 단락 태그를 포함하지 않고 HTML 콘텐츠를 추출하는 문제를 해결합니다. saveXML()이 이러한 래퍼를 출력에 추가할 때 문제가 발생합니다. 첫 번째 단락 요소에 saveXML()을 사용하여 제안된 수정 사항은 블록 수준 요소가 없는 콘텐츠에만 작동하지만 이 기사에서는 포괄적인 솔루션을 탐색합니다.
이 문제를 해결하는 열쇠는 $옵션 도입에 있습니다. PHP 5.4 및 Libxml 2.6의 loadHTML() 매개변수입니다. 다음 옵션을 활용하여
$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
Libxml에 암시적 HTML 및 본문 요소나 기본 문서 유형을 자동으로 추가하지 않도록 지시할 수 있습니다. 결과적으로, saveHTML()은 이러한 래퍼 없이 콘텐츠를 출력합니다.
LIBXML_HTML_NOIMPLIED는 묵시적인 HTML/본문 요소의 자동 추가를 끄는 반면, LIBXML_HTML_NODEFDTD는 입력에서 찾을 수 없는 기본 문서 유형이 추가되는 것을 방지합니다.
이러한 옵션을 통합함으로써 원치 않는 래퍼 없이 원하는 HTML 콘텐츠를 효과적으로 추출할 수 있습니다. DOMDocument 콘텐츠를 보다 정확하게 표현합니다.
loadHTML()에는 Libxml 2.6이 필요하지만 LIBXML_HTML_NODEFDTD는 Libxml 2.7.8에서만 사용할 수 있고 LIBXML_HTML_NOIMPLIED는 Libxml 2.7.7에서 사용할 수 있다는 점에 유의하는 것이 중요합니다. Libxml 매개변수에 대한 포괄적인 이해는 공식 문서를 참조하세요.
위 내용은 래퍼 태그 없이 DOMDocument에서 HTML을 어떻게 저장할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!