我有很多HTML数据要导入,这些数据使用大写标记和属性名。不幸的是,接收系统不允许这样做,坚持认为它们都是较低的情况。
如何安全地更改所有标记和属性名?
我会跳转到正则表达式preg_replace_callback,但我知道,在解析HTML时,这可能会变得非常棘手--某种程度上是对车轮的重新发明。
是否有DOMDocument或其他更安全的解决方案?
发布于 2014-06-28 12:09:14
正如@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>https://stackoverflow.com/questions/24465467
复制相似问题