string http_build_query ( mixed $query_data [, string $numeric_prefix [,
string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
手册中的简单示例:<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');echo http_build_query($data) . "\n";/* output:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
*/?>
在php5之前:
从手册:CURLOPT_POSTFIELDS
要在HTTP“POST”操作中发布的完整数据。要发布文件,请在文件前加上@并使用完整路径。可以通过使用格式为'; type = mimetype'的类型的文件名来明确指定文件类型。此参数可以作为urlencoded字符串传递,如'para1 = val1&para2 = val2&...',也可以作为数组传递,字段名称为键,字段数据为值。如果value是数组,则Content-Type标头将设置为multipart / form-data。从PHP 5.2.0开始,使用@前缀传递给此选项的文件必须采用数组形式才能工作。
所以像这样的东西应该完美地工作(在关联数组中传递参数):function preparePostFields($array) {
$params = array();
foreach ($array as $key => $value) {
$params[] = $key . '=' . urlencode($value);
}
return implode('&', $params);}