如何在PHP中将HTML <tags>转换为<tags>?</tags> </tags>

时间:2014-06-28 09:33:39

标签: php html

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

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

我会跳转到正则表达式preg_replace_callback,但我知道在解析HTML时最终会变得非常棘手 - 重新发明轮子。

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

1 个答案:

答案 0 :(得分:1)

正如@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>