我的朋友一直在我们的网站上玩一些语言的东西,我们的文件名现在已经出现了这些字符。通常我会等他醒来,但这是一个非常大的问题,因为我们正在收到关于文件名中奇怪字符的电子邮件。
在HTML中回显时没有看到字符,但是我们将名称输出到标题,标题显示字符,如下所示:
header('Content-Disposition: attachment; filename="'.$title.'.'.strtolower($type).'";');
我们如何避免显示这些字符?它们也被输入我们的数据库,文件名如‪asdfmovie‬‏
- 我搜索了代码,但我找不到任何结果。
有谁知道它们是什么?以及如何避免它们?
谢谢
答案 0 :(得分:4)
html_entity_decode()
http://php.net/manual/en/function.html-entity-decode.php
这些是在HTML中有效的html实体。您的电子邮件客户端实际上将它们编码为HTML实体(双重效果),这意味着实际的实体就是您所看到的。只需确保传入电子邮件的任何内容都通过html_entity_decode()函数运行。
答案 1 :(得分:4)
这些HTML entities可以使用html_entity_decode
进行解码,例如echo html_entity_decode($str, ENT_COMPAT, 'UTF-8')
。
如您所见,将这些值存储在数据库中是错误的。这些值应以其原始形式存储,并且只有在必要时才编码HTML实体以输出到HTML。弄清楚他们在哪里进行HTML编码并修复它。如果你已经有一个充满了这个废话的数据库...嗯,请乐趣扭转它。 :O)