考虑下面的PHP代码:parse_str错误解析整数转换为字符串
//JS
// var a = { category: [9] };
// var x = $.param(a);
// window.location.href = "test.com/?foo=" + x;
$x = $_GET["foo"];
$x = "category%5B%5D=9"; // this is what $_GET["foo"] looks like
$result = array();
parse_str($x, $result);
var_dump($result);
现在,这将输出:
array(1) {
["category"]=>
array(1) {
[0]=>
string(1) "9"
}
}
哪项是错误的。 category
数组内的元素应该是整数而不是字符串。为什么parse_str
很难处理这个输入?我怎样才能将它转换为字符串只有在"
或'
之间的数据? (几乎如何json_decode
工作)
在URL语法中没有数据输入,所以一切都被认为是一个字符串。 – Barmar
它不像JSON,它对字符串的数字有不同的语法(它把字符串放在引号内)。 – Barmar
@Barmar是的,那是一个错字。那么我应该使用JSON,但是我可以在GET请求中使用它吗?有没有一些“JSON到URL”的方式来转换该数据? – alexandernst