如何使用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
答
您不需要拨打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
谢谢 –
1.'$ _POST [ “NUM”]'或'$ _POST [ “NUM”]',任一或两者都是阵列。 2.你为什么要做'$ num [] = $ _POST [“num”];'?您可以简单地执行'$ num = $ _POST [“num”];' –
3.您不会在'$ re'中得到任何东西,除非您也设置了这个'curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true);' 4.'CURLOPT_POST'没有取整数值,比如'count($ fields)',它应该是'curl_setopt($ ch,CURLOPT_POST,true);' –
我已经解决了,谢谢 –