-1

我想将用户提交的值从表单发送到网址。我正在使用 PHP 来实现这一点。我正在写的这本书,Larry Ullman 的 PHP for the Web 使用变量来存储表单值,如下所示:

$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));

那是我的问题。该响应如何从网址到我的变量?

4

1 回答 1

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,您将获得如下所示的代码:

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'] 。如果不清楚,您会在哪里看到多个括号,例如 a[bar][] ,指的是多维数组,你不一定需要创建多个单维数组。

看看这个答案:

如何在 php 中通过 $_GET 传递数组?

于 2013-09-09T02:12:02.497 回答