1. 程式人生 > >使用PHP的CURL基於RESTful風格實現POST字串或檔案上傳

使用PHP的CURL基於RESTful風格實現POST字串或檔案上傳

目前不管是移動端的API還是呼叫眾多服務商(微信、微博、銀行等)的介面大多數都是基於RESTful風格。下面就介紹如何使用PHP基於RESTful風格上傳檔案或POST字串。

上傳檔案程式碼示例:

$url = '提交地址';
//$postfields = file_get_contents('檔案路徑或者檔名'); 
$ch = curl_init();
$params[CURLOPT_URL] = $url;    //請求url地址
$params[CURLOPT_HEADER] = true; //是否返回響應頭資訊
$params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回
$params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $postfields;

curl_setopt_array($ch, $params); //傳入curl引數
$content = curl_exec($ch); //執行
echo $content; //輸出登入結果
curl_close($ch); //關閉連線

如果PHP作為伺服器端接收檔案並儲存可以使用如下程式碼:

$bin_file = file_get_contents('php://input');
file_put_contents('檔案儲存路徑/檔名.副檔名');

如果使用PHP通過POST的方式提交xml或者json等格式的字串可以使用如下程式碼:

$url = '提交地址';
$postfields = 'XML或者JSON等字串';
$ch = curl_init();
$params[CURLOPT_URL] = $url;    //請求url地址
$params[CURLOPT_HEADER] = true; //是否返回響應頭資訊
$params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回
$params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $postfields;

curl_setopt_array($ch, $params); //傳入curl引數
$content = curl_exec($ch); //執行
echo $content; //輸出登入結果
curl_close($ch); //關閉連線

接收字串資料只需使用:

file_get_contents('php://input');