如何使用curl发送多个数字作为输入?

时间:2017-01-12 18:50:39

标签: php curl urlencode

我想使用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 

1 个答案:

答案 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);