奇怪的字符,例如 ‪ ‬ ‏

Lat*_*tox 3 php mysql

我的朋友一直在我们的网站上玩弄一些语言的东西,我们的文件名现在正在使用这些字符。通常我会等他醒来,但这是一个相当大的问题,因为我们正在收到有关文件名中奇怪字符的电子邮件。

在 HTML 中回显时,您看不到这些字符,但我们将名称输出到标头,标头确实显示了这些字符,如下所示:

header('Content-Disposition: attachment; filename="'.$title.'.'.strtolower($type).'";');
Run Code Online (Sandbox Code Playgroud)

如何避免这些字符的显示呢?它们也被输入到我们的数据库中,文件名例如‪asdfmovie‬‏- 我已经用谷歌搜索了代码,但找不到它们的任何结果。

有谁知道它们是什么?以及如何避免它们?

谢谢

dtb*_*rne 5

html_entity_decode()

http://php.net/manual/en/function.html-entity-decode.php

这些是 HTML 中有效的 html 实体。您的电子邮件客户端实际上将它们编码为 HTML 实体(双重效果),这意味着实际的实体就是您所看到的。只需确保传递到电子邮件中的任何内容都通过 html_entity_decode() 函数运行即可。