我有一个奇怪的问题。最近我把我的应用从本地xampp安装迁移到了SUSE Enterprise Server 11,一切都正常,但有一件事情让我很疯狂,无法找到解决办法。
当使用以下语法通过GET或POST传递数组时:
search_dggs.php?latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16
我只得到了latmin的第一个元素。请注意,这只是在需要传递数组的其他地方出现错误后我尝试的一个简单示例。
print_r($_SERVER["QUERY_STRING"]);
输出
latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16
但是
print_r($_GET);
提供
Array
(
[latmin] => Array
(
[0] => 52.447529
)
[lonmin] => 17.56
[lonmax] => 22.16
)
所有的POST请求都会发生完全相同的情况。
我使用的是 PHP 版本 5.3.8。 我猜问题在于服务器配置,但我找不到关于这个问题的任何信息。
回应评论:
如果我提交任意数量的变量,也会发生相同的情况。
parse_str($_SERVER["QUERY_STRING"]);
print_r($latmin);
提供
Array
(
[0] => 52.447529
)
php.ini文件可以在这里找到。
你可以在这里看到该行为的实际效果。
此php文件的源文件为:
<?php
$test="latmin[]=52.447529&latmin[]=22&lonmin=23&lonmax=22.16";
parse_str($test);
print_r($latmin);
phpinfo();
?>