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

问题描述:

我想利用这个curl.For我使用NUM []中的HTML代码。此发送多个号码作为输入的是我的代码如何使用curl发送多个数字作为输入?

$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

1.'$ _POST [ “NUM”]'或'$ _POST [ “NUM”]',任一或两者都是阵列。 2.你为什么要做'$ num [] = $ _POST [“num”];'?您可以简单地执行'$ num = $ _POST [“num”];' –

+0

3.您不会在'$ re'中得到任何东西,除非您也设置了这个'curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true);' 4.'CURLOPT_POST'没有取整数值,比如'count($ fields)',它应该是'curl_setopt($ ch,CURLOPT_POST,true);' –

+0

我已经解决了,谢谢 –

您不需要拨打urlencode()$fields阵列的值。 http_build_query()将正确执行此操作。

另外urlencode()只适用于字符串,而不是值的数组(因此错误)。最后,如果您能够在将它们传递到http_build_query之前对它们进行编码,那么您现在已经对urlencoded字符串进行了urlencoding编码 - 结果可能是垃圾。

尝试这种情况:

$fields = array(
     'num'=>$_POST["num"], 
     'msg'=>$_POST["msg"]); 

$fields_string = http_build_query($fields); 
+0

谢谢 –