ホームページ  >  記事  >  バックエンド開発  >  美しい別れ php の http_build_query の問題

美しい別れ php の http_build_query の問題

WBOY
WBOYオリジナル
2016-07-29 08:48:22958ブラウズ

CURL を使用してデータを投稿する場合、投稿データを設定する必要があります
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 はポストされません。ということで、変換方法を書いてみたらOKでした。


コードをコピー コードは次のとおりです:

function getStr($array,$Separator='&') {

if (empty($array))
return;配列)) {
return $array;
}
$returnStr = '';
foreach ($key => $val) {
$temp = '';
for ($i = 0; $i $returnStr .= $key . '=' . ] . $ Separator;
}
} else {
$returnStr.= $val . $Separator;
$returnStr(trim($returnStr), 0, -1) ;
return $returnStr;


http_build_query($data,"","&"); をテストしてくれた Huang Bin-huangbin に感謝します。自分で解析するメソッドを記述する必要はありません。
http_build_query リモートの攻撃者がこの脆弱性を悪用して、機密メモリ情報を取得する可能性があります。慎重に使用してください
上記は、Beautiful Goodbye php の http_build_query の問題を紹介しています。Beautiful Goodbye の内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。