- <?php
- /*
- * http_build_query
- * 是一个字符串操作函数
- * 针对的是数组和对象生成 URL-encode 之后的请求字符串
- *
- */
- $arr = array("121212"=>"woman","56856"=>"men");
- class jclass{
- public $a=123;
- private $b=323;
- protected $c = 897;
- }
- $str = http_build_query($arr);//string(22) "121212=woman&56856=men"
- var_dump($str);
- echo "<br>";
- $jclass = new jclass();
- $jclass = json_encode($jclass);//string(9) "{"a":123}"
- var_dump($jclass);
- /* 如果想加前后缀也很简单 */
- echo "<br>";
- echo http_build_query($arr,'', "_kkkkk");
- echo "<br>";
- var_dump(http_build_query($arr, "kkk_"));
- echo "<br>";
- $data = array('user'=>array('name'=>'Bob Smith',
- 'age'=>47,
- 'sex'=>'M',
- 'dob'=>'5/12/1956'),
- 'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
- 'children'=>array('bobby'=>array('age'=>12,
- 'sex'=>'M'),
- 'sally'=>array('age'=>8,
- 'sex'=>'F')),
- 'CEO');
- echo http_build_query($data, 'flags_'); echo "<br>";
- /* 现在问题来了,转码了,那么如何解码呢 */
- // http://dev.blogs/string/http_build_query.php?user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%2F12%2F1956&pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&children[sally][sex]=F&flags_0=CEO
- $get_arr = $_GET;
- print_r($get_arr); echo "<br>";//呵呵,过来的已经是数组了
- /* 看见有人问 js 类似的东西
- 感觉js都是通过class id 定位获取value值,最后拼串的,没有必要有类似的东西
- */
- /*
- 类似的函数 http_build_cookie ― Build cookie string
- 得到我们的cookie值
- */
- $cval = "something from somewhere";
- setcookie("test_cookie", $cval, time() + 60 * 60 * 24);
- var_dump($_COOKIE);echo '<br>';
- //var_dump(http_build_cookie($_COOKIE));//报错,是因为 pecl_http 扩展是没有默认安装的,要先去安装扩展 php_http.dll
- //该片段来自于http://www.codesnippet.cn/detail/0112201411120.html
来源: http://www.codesnippet.cn/detail/0112201411120.html