2014-03-19 81 views
1

隨着curl從Linux的bash我可以下載一個網頁,通過一些變量如何使用-data捲曲在PHP

curl --data "var1=val1&var2=val2&var3=&var4=val4&btnSubmit=btnName" https://<url> -o "<fileToSave>" 

我需要做的事情,但要獲得該頁面的完整HTML代碼到同一個PHP變量。 我想這一點:

<?php $ch = curl_init(); 


$post_data = array (
    "var1" => "val1", 
    "var2" => "val2", 
    "var3" => "", 
    "var4" => "val4", 
    "btnSubmit" => "btnName" 
); 

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 

$response = curl_exec($ch); 
?> 

的問題是,從慶典,我可以檢索HTML頁面和與此代碼我$response值爲空保存。

怎麼了?

回答

1

使用http_build_query()$post_data,否則將捲曲承擔基礎上,Array數據類型POSTmultipart/form-data發佈(這就是爲什麼它不爲你工作)。

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data)); 

http_build_query()陣列成key1=value1&key2=value2具有自動urlencode()格式化字符串轉換。

1

好像你正在連接到HTTPs URL。您應該啓用此cURL參數。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
+1

謝謝!很棒! – ntrax