2014-06-28 69 views
0

我有很多要导入的HTML数据,它使用大写的标记和属性名称。不幸的是,接收系统不允许这样做,坚持认为它们都是小写字母。如何在PHP中将HTML <TAGS>转换为<tags>?

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

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

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

+1

尝试使用DOM文档只加载HTML,然后立即将其保存。看看是否有效。 –

+0

试试这个'/ <\([^>] * \)>/<\L\1>/g'正则表达式参考:http://vim.wikia.com/wiki/Changing_all_HTML_tags_to_lowercase –

+0

可能的重复:http://stackoverflow.com/questions/12229795/ convert-all-html-tags-to-lowercase,http://stackoverflow.com/questions/5732628/how-to-lowercase-only-html-elements,http://stackoverflow.com/questions/10326880/converting-大写-html-tags-to-lowercase – hutchbat

回答

1

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

考虑这个例子:

​​

应该产生这样的:

<!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> 
+0

有没有任何方法可以在不包含'<!DOCTYPE'和''包装的情况下解压缩? OBV。我可以正则表达式,但只是想知道... – artfulrobot

+0

@artfulrobot是的,我虽然你会问这个,这就是为什么我在我的答案中添加了一个链接,那里的评论does not像函数附加的文档类型,访问该链接顺便说一句,它会在您使用此功能时自动附加它,您只能使用解决方法 – user1978142

相关问题