Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php http如何生成查询这样的字符串?_Php_Url - Fatal编程技术网

Php http如何生成查询这样的字符串?

Php http如何生成查询这样的字符串?,php,url,Php,Url,我想得到这样的字符串: 'campaigns?fields=campaigns.id,campaigns.settings.title' <pre> <?php $arr=array(); $str="0=campaigns&fields[0]=campaigns.id&fields[1]=campaigns.settings.title"; $arr=explode("&",$str); print_r($arr); ?> </pre&

我想得到这样的字符串:

'campaigns?fields=campaigns.id,campaigns.settings.title'
<pre>
<?php
$arr=array();
$str="0=campaigns&fields[0]=campaigns.id&fields[1]=campaigns.settings.title";
$arr=explode("&",$str);
print_r($arr);
?>
 </pre>
我试着这样:

$param = [
        'campaigns',
        'fields' => [
            'campaigns.id',
            'campaigns.settings.title'
        ]
    ];
但请记住:

0=campaigns&fields[0]=campaigns.id&fields[1]=campaigns.settings.title
enter code here
它是如何编辑的?

您可以尝试使用以下工具进行编辑:

您可以使用explode(“&”)作为当前在路径上执行的操作:


我非常担心,您真的想要这样的http字符串:

campaigns?fields[]=campaigns.id&fields[]=campaigns.settings.title
它的意思是:使用单个http参数
字段转到url
活动
,这些字段包含字符串
活动.id、活动.settings.title

我认为您主要应该选择以下一种可能的变体:

campaigns?campaigns[id]=xxxx&campaigns[settings][title]=yyyyy
因此,您将发送具有2个值的字段数组
或:

在适当的对象中拆分http参数

http_build_query只生成字符串的查询部分,即初始字符串中的
fields=campetings.id,campetings.settings.title
。使用http\u build\u查询无法获取完整字符串,但可以使用以下方法:

$param = [
        'campaigns',
        'fields' => [
            'campaigns.id',
            'campaigns.settings.title'
        ]
    ];

要获得所需的确切字符串

查询是
之后的字符串,因此不需要添加
活动
;2)逗号将由函数进行URL编码。虽然仅代码答案可能解决问题,但描述您的建议以及解决问题的原因将提高您答案的质量。
campaigns?campaigns[id]=xxxx&campaigns[settings][title]=yyyyy
'campaigns?' . http_build_query(fields: 'campaigns.id,campaigns.settings.title')