我想将用户提交的值从表单发送到网址。我正在使用PHP来实现这一目标。我正在编写的书,Larry Ullman的Web for PHP使用变量来存储表单值,如下所示:
$input = $_POST['value'];
<form>
<input type="textbox" id="value">
<input type="submit" value="submit">
</form
接下来,我会将这些值发送到这样的网址
$req = "http://webaddress/?value=$input";
现在我想从网址获得一个json响应。 像这样:
$response = json_decode(file_get_contents($req));
这是我的问题。该响应如何从Web地址变为我的变量?
答案 0 :(得分:1)
json_decode将有效的json字符串解码为数组。所以,json字符串看起来像
'{"a":1,"b":2,"c":3,"d":4,"e":5}'
将以一个对应于您的json字符串的键/值对的数组结束,例如:
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
您可以传递json编码的字符串并通过$ _GET接收它们。 http_build_query为您完成此任务:
使用http_build_query,您将获得如下代码:
http_build_query(array('a' => array(1, 2, 3))) // "a[]=1&a[]=2&a[]=3"
http_build_query(array(
'a' => array(
'foo' => 'bar',
'bar' => array(1, 2, 3),
)
)); // "a[foo]=bar&a[bar][]=1&a[bar][]=2&a[bar][]=3"
然后你可以在$ _GET键上使用json_decode(在这种情况下,你在编码时设置$ _GET ['a']。如果不清楚,你会看到多个括号,例如[bar] ] [],这指的是一个多维数组。你不一定需要创建多个单维数组。
看看这个答案: