Koo*_*bin 15 php skip domdocument
我正在解析并将html文档提取到DOMDocument.这些文档是将在另一页内显示的子表单.在保存解析的DOMDocuments时,它会自动添加doctype,html,head和body标记.因为我正在处理子表单,我想删除所有这些并仅保存表单的子标签.
如何在保存domdocument的同时跳过自动生成html,head,body和其他标签?
Ali*_*xel 22
和@KoolKabin一样回答,但更短一些:
return preg_replace('~<(?:!DOCTYPE|/?(?:html|body))[^>]*>\s*~i', '', $dom->saveHTML());
Run Code Online (Sandbox Code Playgroud)
Koo*_*bin 16
通过阅读数百个链接后自己搞定了.希望它能帮助其他人......
return preg_replace('/^<!DOCTYPE.+?>/', '', str_replace( array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $objDOM->saveHTML()));
Run Code Online (Sandbox Code Playgroud)
详细信息:http://www.php.net/manual/en/domdocument.savehtml.php
Ani*_*ari 11
从PHP 5.4和Libxml 2.6开始,目前有一种更简单的方法:当您加载html时
$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
Run Code Online (Sandbox Code Playgroud)
在输出中,将没有doctype,html或body标签.资源