在php中http_build_query函數(shù)是一個(gè)被大多數(shù)據(jù)程序員看忘記的函數(shù),就我現(xiàn)在都不知道http_build_query的作用,下面我給大家分享一篇文章一起來(lái)學(xué)習(xí)學(xué)習(xí)吧.
具體方法:
當(dāng)我們使用CURL來(lái)post數(shù)據(jù)的時(shí)候,需要設(shè)置post的數(shù)據(jù)curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);假如這里的$data是
- $data = array(
- 'name'=>'www.111cn.net',
- 'time'=>'2012-2-3'
- )
接下來(lái),需要先將$data變成字符串
- $post_data = http_build_query($data);
而采用 http_build_query 轉(zhuǎn)換后再curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);
看起來(lái)沒(méi)有什么問(wèn)題.但在實(shí)際操作中,$post_data 并沒(méi)有被post過(guò)去.于是,自己寫(xiě)了個(gè)轉(zhuǎn)換的方法后就OK了.
實(shí)例代碼如下:
- function getStr($array,$Separator='&') {
- if (emptyempty($array))
- return;
- if (!is_array($array)) {
- return $array;
- }
- $returnStr = '';
- foreach ($array as $key => $val) {
- $temp = '';
- if (is_array($val)) {
- for ($i = 0; $i < count($val); $i++) {
- $returnStr .= $key . '[' . $i . ']' . '=' . $val[$i] . $Separator;
- }
- } else {
- $returnStr.= $key . '=' . $val . $Separator;
- }
- }
- $returnStr = substr(trim($returnStr), 0, -1);
- return $returnStr;
- }
測(cè)試 http_build_query($data,"","&"); 即可,無(wú)需自己寫(xiě)方法解析了.http_build_query 就是將一個(gè)數(shù)組轉(zhuǎn)換成url ?后面的參數(shù)字符串,會(huì)自動(dòng)進(jìn)行urlencode處理,string http_build_query ( array formdata [, string numeric_prefix]),后面的給數(shù)組中沒(méi)有指定鍵或者鍵為數(shù)字的加下標(biāo).
新聞熱點(diǎn)
疑難解答