<p>http_build_query</p> <p>(PHP 5)</p> <p>http_build_query -- 生成 url-encoded 之后的请求字符串描述string http_build_query ( array formdata [, string numeric_prefix] )</p> <p>使用给出的关联(或下标)数组生成一个 url-encoded 请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数,此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。</p> <p><br /> 例子 1. http_build_query() 使用示例</p> <p>&lt;?php<br /> $data = array(&#39;foo&#39;=&gt;&#39;bar&#39;,<br /> &#39;baz&#39;=&gt;&#39;boom&#39;,<br /> &#39;cow&#39;=&gt;&#39;milk&#39;,<br /> &#39;php&#39;=&gt;&#39;hypertext processor&#39;);<br /> echo http_build_query($data);<br /> /* 输出:<br /> foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor<br /> */<br /> ?&gt;</p> <p>例子 2. http_build_query() 使用数字下标的元素</p> <p>&lt;?php<br /> $data = array(&#39;foo&#39;, &#39;bar&#39;, &#39;baz&#39;, &#39;boom&#39;, &#39;cow&#39; =&gt; &#39;milk&#39;, &#39;php&#39; =&gt;&#39;hypertext processor&#39;);<br /> echo http_build_query($data);<br /> /* 输出:<br /> 0=foo&amp;1=bar&amp;2=baz&amp;3=boom&amp;cow=milk&amp;php=hypertext+processor<br /> */<br /> echo http_build_query($data, &#39;myvar_&#39;);<br /> /* 输出:<br /> myvar_0=foo&amp;myvar_1=bar&amp;myvar_2=baz&amp;myvar_3=boom&amp;cow=milk&amp;php=hypertext+processor<br /> */<br /> ?&gt;</p> <p>例子 3. http_build_query() 使用复杂的数组</p> <p>&lt;?php<br /> $data = array(&#39;user&#39;=&gt;array(&#39;name&#39;=&gt;&#39;Bob Smith&#39;,<br /> &#39;age&#39;=&gt;47,<br /> &#39;sex&#39;=&gt;&#39;M&#39;,<br /> &#39;dob&#39;=&gt;&#39;5/12/1956&#39;),<br /> &#39;pastimes&#39;=&gt;array(&#39;golf&#39;, &#39;opera&#39;, &#39;poker&#39;, &#39;rap&#39;),<br /> &#39;children&#39;=&gt;array(&#39;bobby&#39;=&gt;array(&#39;age&#39;=&gt;12,<br /> &#39;sex&#39;=&gt;&#39;M&#39;),<br /> &#39;sally&#39;=&gt;array(&#39;age&#39;=&gt;8,<br /> &#39;sex&#39;=&gt;&#39;F&#39;)),<br /> &#39;CEO&#39;);<br /> echo http_build_query($data, &#39;flags_&#39;);<br /> /* 输出:(为了可读性对其进行了折行)<br /> user[name]=Bob+Smith&amp;user[age]=47&amp;user[sex]=M&amp;user[dob]=5%1F12%1F1956&amp;<br /> pastimes[0]=golf&amp;pastimes[1]=opera&amp;pastimes[2]=poker&amp;pastimes[3]=rap&amp;<br /> children[bobby][age]=12&amp;children[bobby][sex]=M&amp;children[sally][age]=8&amp;<br /> children[sally][sex]=F&amp;flags_0=CEO<br /> 注意:只有基础数组中的数字下标元素&ldquo;CEO&rdquo;才获取了前缀,其它数字下标元素(如<br /> pastimes 下的元素)则不需要为了合法的变量名而加上前缀。<br /> */<br /> ?&gt;</p> <p>例子 4. http_build_query() 使用对象</p> <p>&lt;?php<br /> class myClass {<br /> var $foo;<br /> var $baz;<br /> function myClass() {<br /> $this-&gt;foo = &#39;bar&#39;;<br /> $this-&gt;baz = &#39;boom&#39;;<br /> }<br /> }<br /> $data = new myClass();<br /> echo http_build_query($data);<br /> /* 输出:<br /> foo=bar&amp;baz=boom<br /> */<br /> ?&gt;</p>
返回顶部 留言