PHP 5.4 post / get阿拉伯语变量为空

时间:2014-02-18 23:52:13

标签: php variables encoding arabic

将服务器升级到php 5.4之后我遇到了1个问题

在我们的网站中,我们使用的是注册全局变量,这已从php 5.4

中删除

我们使用以下代码解决了这个问题:

foreach ($_REQUEST as $key => $val) {
    ${$key} = $val;
} 

如果$ val是英语,它的工作正常,但如果$ val是阿拉伯语lang,则此代码返回为空val

我尝试使用:urlencode()htmlspecialchars()但未解决此问题。

2 个答案:

答案 0 :(得分:0)

请勿尝试随机调用任何函数。 PHP没有检测到任何编码。每个字符只是一个字节序列,其中"零"字节没有特殊含义。所以基本上不应该是你观察失败的任何原因。

做一些调试。 var_dump($_REQUEST)将是有序的,最好是在只有一个值的简化测试用例中。如果需要检测任何不可打印的字节,请使用echo urlencode($value)快速获取十六进制值 - 但这仅用于调试!它不会帮助解决这个问题,即对该值进行url编码将不会使其再次用于您的应用程序(同样适用于使用htmlspecialchars(),这对任何事情没有帮助。)

还要在代码中转储$val。如果它确实为空,那么urlencode()或htmlspecialchars()不会改变它,错误发生在此之前。

你的问题还没有透露任何更多信息,所以请进行这些价值转储 - 如果你自己无法弄明白,那么请用这些转储更新你的问题,以供所有人查看。

答案 1 :(得分:-1)

尝试将此添加到标题中。

<META HTTP-EQUIV="Content-Type"  CONTENT="text/html; CHARSET=iso-8859-6">