php中http_build_query 的一個問題

來源:互聯網
上載者:User

當我們使用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 遠程攻擊者可以利用漏洞獲得敏感記憶體資訊。請大家謹慎使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.