程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中http_build_query 的一個問題

php中http_build_query 的一個問題

編輯:關於PHP編程

當我們使用CURL來post數據的時候,需要設置post的數據
curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);

假如這裡的$data是
復制代碼 代碼如下:
$data = array(
'name'=>'scofield',
'time'=>'2012-2-3'
)

接下來,需要先將$data變成字符串
$post_data = http_build_query($data);
而采用 http_build_query 轉換後再
curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);

看起來沒有什麼問題。但在實際操作中,$post_data 並沒有被post過去。於是,自己寫了個轉換的方法後就OK了。
復制代碼 代碼如下:
function getStr($array,$Separator='&') {
if (empty($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;
}

感謝 黃斌-huangbin 童鞋的測試 http_build_query($data,"","&"); 即可,無需自己寫方法解析了。

http_build_query 遠程攻擊者可以利用漏洞獲得敏感內存信息。請大家謹慎使用

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved