2017-04-07 93 views
1

curlのPOSTFIELDSオプションがクエリ文字列か連想配列のいずれかをとることに気づいています。PHP curl POSTの多次元配列をクエリ文字列に変換

curl_setopt($curl, CURLOPT_POSTFIELDS, $_POST); 

しかし、私はこのように入力してページを持って言うことができます:

<input type="text" name="address[line1]"> 

PHPは残念ながらcurl_setoptをして何をするかわからない多次元配列$_POST['address']['line1']を作成します。潜在的に多次元である連想配列を有効なHTTPクエリ文字列に変換する簡単な方法はありますか?

代わりに、$_SERVER['QUERY_STRING']と同じように、生のHTTP投稿クエリ文字列にアクセスする方法はありますか?あなたはまた、get access to the raw POST datainput://を使用することができます

<?php 
$posted = ["foo"=>"bar", "address"=>["line1"=>"foo"]]; 
$string = http_build_query($posted); 

echo $string; 

が、それは非HTMLデータを扱う場合を除き、ほとんど必要ありません:

+0

ええ、それはまさに私が探していたものです。本当にありがとう! –

答えて

4

あなたがカールして渡すことができる文字列を作成するhttp_build_query()を使用することができます。