我使用$ _GET []从php中的url获取变量。该网址如下:http://www.site.com/index.php?x=B%FCergschaften我将其与数组中的值进行比较:$y=array('Bauherrenhaftpflicht','Gebäudeversicherung','Büergschaften');
据我所知,url中的变量是由$ _GET函数解码的,但是当我将它与数组进行比较时,我得不到匹配。
这是我用来比较的代码:
$x = $_GET['x']; foreach($y as $value){ if($value == $x){ echo "Found!"; } }
我尝试了urldecode function,但它不起作用。
如何正确解码url中的变量,以便正确解码特殊字符并将变量与数组进行比较?
非常感谢。
答案 0 :(得分:3)
因为您使用的是超出默认字符集的特殊字符,您应该解码数组值或将GET参数值编码为UTF-8
我正在本地进行测试,它对我有用:
$x = utf8_encode(urldecode($_GET['x']));
$y=array('Bauherrenhaftpflicht','Gebäudeversicherung','Büergschaften');
echo in_array($x,$y); // outputs 1 (true)
让我们知道它是否适合您。
答案 1 :(得分:2)
正如评论中所述:
$x = utf8_encode(urldecode($_GET['x']));
而且你应该/可以使用in_array()
if (in_array($x, $y)) {
echo "Found!";
}