如何转换HTML < tag >& lt; tags>在PHP中


How to convert HTML <TAGS> to <tags> in PHP?

我有很多HTML数据要导入,这些数据使用大写标记和属性名。不幸的是,接收系统不允许这样做,坚持认为它们都是小写的。

如何安全地更改所有标签和属性名称?

我想直接使用正则表达式preg_replace_callback,但是我知道这在解析HTML时可能会变得非常棘手——有点像重新发明轮子。

是否有一个DOMDocument或其他更安全的解决方案?

正如@niet建议的,您可以尝试使用DOMDocument然后保存并尝试输出。

考虑这个例子:

<?php
$html_with_uppercase_tags = '<BODY><DIV class="container"><H1>Headers</H1><P>This is paragraph one</P></DIV></BODY>';
$dom = new DOMDocument();
$dom->loadHTML($html_with_uppercase_tags);
echo htmlentities($dom->saveHTML()); // check the tags
// http://www.php.net/manual/en/domdocument.savehtml.php
?>

应该产生如下内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html><body><div class="container"><h1>Headers</h1><p>This is paragraph one</p></div></body></html>