[PHP] PHP + CURL 傳送 Request (GET,POST或上傳檔案) 至另一個網頁
PHP傳送GET、POST、上傳檔案至另一個網址,以及PHP如何接收及處理上傳的檔案。正常來講PHP程式通常是接收端,但有些時候也會扮演傳送端,把資料送到同一個或另一個伺服器,或者讀取某個網頁資料,這時可以用fopen、fsockopen或者cURL,後者功能強大且使用起來很便利、程式碼也很美觀直覺,相當推薦使用。 簡易的使用語法(GET): $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://SomeDomain/SamplePath?SomeVar=test"); curl_exec($ch); curl_close($ch); 簡單的POST範例: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://SomeDomain/SamplePath"); curl_setopt($ch, CURLOPT_POST, true); // 啟用POST curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( "a"=>"123", "b"=>"321") )); curl_exec($ch); curl_close($ch); CURLOPT_POSTFIELDS參數即為POST的內容,而 http_build_query() 效果是將array併成 a=123&b=321 型式的字串,POST內容會在header中標示以application/x-www-form-urlencoded型式傳送,如果不用字串而直接給array也可以,傳送方式則會變成multipart/form-data,但是封包會變大,且可能不被某些Server接受,通常是傳送檔案時才用。 進階的POST範例,參數設置還可以用array的方式取代: $toURL = "http://SomeDomain/SamplePath?SomeVar=XX"; $post = array( "a"=>