我发现了一些提到该问题的帖子,但没有一个能够完全解决该问题。
我需要一个函数,该函数将输出以 htmlentities() 的方式转换所有特殊字符的内容,但保留所有 html 标签。
我尝试了许多不同的方法,但正如我上面提到的 - 它们都没有按预期工作。
我想知道是否有办法使用 PHP 类 DomDocument 来做到这一点。
我尝试使用以下方法来做到这一点:
$objDom = new DOMDocument('1.0', 'utf-8');
$objDom->loadhtml($content);
return $objDom->savehtml();
这是可行的,但它还添加了页面的整个结构,即
<head><body> etc.
我只需要转换 $content 变量的内容并完成工作。
这里值得一提的另一件事是 $content 也可能有一些转换为 xhtml 投诉的字符 - 因为它来自 Wysiwyg。所以它可能包含 & 等,也应该保留。
任何人都知道使用 DomDocument 执行此操作的方法 - 也许我应该使用不同的保存方法?
好的 - 我想出了以下内容 - 不太好,但是工作到位:
$objDom = new DOMDocument('1.0', 'UTF-8');
$objDom->loadHTML($string);
$output = $objDom->saveXML($objDom->documentElement);
$output = str_replace('<html><body>', '', $output);
$output = str_replace('</body></html>', '', $output);
$output = str_replace(' ', '', $output);
return $output;
任何更好的想法将不胜感激。