php curl问题
像PHP调用API接口时 很多时候是会用到CURL 来提交的。详细的方法就不写了,相信大家都会。
这篇文章紧张是办理提交的数据里同时包含多维数组和文件的办理方法

首先我们看下面这句代码
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
这句便是想API接口提交数据的紧张代码了。但是如果 $data 里有文件的话,由于http_build_query的缘故原由 API那边是吸收不到文件的
那我们直接换成下面这句
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
创造多维数组又吸收不到了
下面给出办理方法
自定义个方法将$data处理下(下面代码大家都能看懂,就不阐明了)
function build_post_fields($data, $existingKeys = '', &$returnArray = [])
{
if (($data instanceof CURLFile) or ! (is_array($data) or is_object($data)))
{
$returnArray[$existingKeys] = $data;
return $returnArray;
} else
{
foreach ($data as $key => $item)
{
build_post_fields($item, $existingKeys ? $existingKeys . \"大众[$key]\公众 : $key, $returnArray);
}
return $returnArray;
}
}
末了利用
curl_setopt($ch, CURLOPT_POSTFIELDS, build_post_fields($data));
就OK了