Php 像&#x202a&#x202c&;rlm;

Php 像&#x202a&#x202c&;rlm;,php,mysql,Php,Mysql,我的朋友一直在我们的网站上玩弄一些语言的东西,我们的文件名现在都用这些字符显示出来了。通常我会等他醒来,但这是一个相当大的问题,因为我们正在收到关于文件名中奇怪字符的电子邮件 在HTML中回显时,您看不到字符,但我们将名称输出到标题,标题确实显示字符,如下所示: header('Content-Disposition: attachment; filename="'.$title.'.'.strtolower($type).'";'); 我们怎样才能避免显示这些字符?它们也被输入到我们的数据库

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

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

header('Content-Disposition: attachment; filename="'.$title.'.'.strtolower($type).'";');
我们怎样才能避免显示这些字符?它们也被输入到我们的数据库中,文件名如
‪;asdfmovie&x202c&rlm-我在谷歌上搜索了这些代码,但找不到任何结果

有人知道他们是什么吗?如何避免它们

谢谢

html\u entity\u decode()

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

这些都可以使用诸如
echo html\u entity\u decode($str,ENT\u COMPAT,'UTF-8')之类的方法进行解码。


但是,正如您所看到的,在数据库中存储这样的值是错误的。这些值应该以其原始形式存储,并且只有在输出到HTML时需要对HTML实体进行编码。找出它们被HTML编码的位置并修复。如果你已经有了一个满是这些废话的数据库。。。嗯,祝你玩得开心o)

x202a和x202c分别是从左到右的嵌入格式和弹出方向格式。好的,我如何从标题中删除它们?有功能吗?或者我必须替换str/preg吗?4分钟后选择相同的答案作为最佳答案。好啊