我需要对$_SERVER
值进行一些字符串操作,尤其是$_SERVER['REQUEST_URI']
PHP如何编码这样的字符串?我应该使用mb_*
家庭功能吗?
为了更好地理解我的问题,假设我的网络服务器上有一个页面,如下所示:
ããã.php
我需要得到第二个字符:
echo mb_substr($_SERVER['REQUEST_URI'],1,1);
答案 0 :(得分:4)
PHP如何编码这样的字符串?
PHP不会对字符串执行任何操作,但Web浏览器通常percent encode REQUEST_URI
中的任何非ASCII字符。 (我说“通常”是因为我看到IE 没有这样做。但是,我希望Apache在这种情况下能够完成这项任务 - 但我不确定它是否会这样做。你会必须尝试。)
运行urldecode()
会解码这些字符。
答案 1 :(得分:0)
$_SERVER['REQUEST_URI']
通常不包含需要使用多字节函数的东西,所以我想如果你不倾向于对请求URI做一些不寻常的事情,比如用非ASCII字符填充它们(由奇怪的URI重写等。)您可以安全地使用“普通”PHP字符串操作函数。