2017-01-12 25 views
1

我想利用這個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

我已經解決了,謝謝 –

回答

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

謝謝 –

相關問題