我正在使用$_GET[]从php中的url获取一个变量。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功能,但它不起作用。
如何正确解码url中的变量,以便正确解码特殊字符,并将变量与数组进行比较?
非常感谢。
因为您使用的是默认字符集之外的特殊字符,所以您应该解码数组值或将GET param值编码为UTF-8
我正在本地测试它,它对我有效:
$x = utf8_encode(urldecode($_GET['x']));
$y=array('Bauherrenhaftpflicht','Gebäudeversicherung','Büergschaften');
echo in_array($x,$y); // outputs 1 (true)
让我们知道它是否适合你。
如评论中所述:
$x = utf8_encode(urldecode($_GET['x']));
而且你应该/可以使用in_array()
if (in_array($x, $y)) {
echo "Found!";
}