我想使用curl发送多个数字作为输入。对于这个我在html代码中使用num []。这是我的代码
$num[]=$_POST["num"];
$msg=$_POST["msg"];
$url = 'http://localhost/s/a.php';
$fields = array(
'num'=>urlencode($_POST["num"]),
'msg'=>urlencode($_POST["msg"]));
$fields_string = http_build_query($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
$re = curl_exec($ch);
但它显示错误
Warning: urlencode() expects parameter 1 to be string, array given in
答案 0 :(得分:0)
您无需调用urlencode()
$fields
数组的值。 http_build_query()
会正确执行此操作。
此外urlencode()
仅适用于字符串,而不适用于值数组(因此错误)。最后,如果你能够在将它们传递到http_build_query
之前对它们进行编码,那么你现在已经对urlencoding已经是urlencoding的字符串 - 结果可能是垃圾。
试试这个:
$fields = array(
'num'=>$_POST["num"],
'msg'=>$_POST["msg"]);
$fields_string = http_build_query($fields);