此[key:value]是哪种查询字符串格式,如何(重新)创建它?

时间:2018-10-24 11:53:52

标签: php laravel query-string urlencode guzzle

我和laravel一起工作-uzz。我在使用api时需要传递查询字符串,例如:

http:://domain.com/WS.php?secret=123123&app=app1&message=[key:value][key2:value][key3:value]

我正在使用此数组来收集获取数据:

$query = [
   'query' => [
       'app'     => 'app1',
       'secret'  => '123123',
       'message'   => [
            'key1'  => 'value',
            'key2'  => 'value',
            'key3'  => 'value',
        ]
    ]
]

我不确定如何将其转换为请求的查询字符串。实际上,我一点都不熟悉[key:value]这部分。我可以自己创建一个字符串(也许是最后一个办法),但是我正在寻找一种比这更好的方法。

1 个答案:

答案 0 :(得分:1)

PHP数组支持的查询字符串语法为:

variable[key?]=value

所以

message[key]=value&message[key2]=value

受支持并不意味着唯一的方法,它只是处理PHP时的预期方法,因为它不需要您进行任何其他操作。

在您自己的应用程序中处理输入的方式实际上没有任何限制,如果他们将其设计为以这种方式读取标准输入或输入,则必须发送该信息。我怀疑是否有内置的功能可以支持此功能,但是为什么不能循环遍历数组以构建消息字符串:

foreach($message as $key=>$value) {
    $str .= "[$key:$value]";
}