PHP – 利用curl函式來達到API
說明:
執行test.php會取得test2.php的回傳值, 來達到api概念吧
test.php
====================================================================================
<meta charset="utf-8">
<?
function curlfun($url,$postdataarray){
/*
CURLOPT_POSTFIELDS參數即為POST的內容,而 http_build_query() 效果是將array併成 a=123&b=321 型式的字串,
POST內容會在header中標示以application/x-www-form-urlencoded型式傳送,如果不用字串而直接給array也可以,
傳送方式則會變成multipart/form-data,但是封包會變大,且可能不被某些Server接受,通常是傳送檔案時才用。
cURL有很多參數可以設置,詳細用法見PHP官網。
CURLOPT_RETURNTRANSFER=true 會傳回網頁回應, false 時只回傳成功與否
*/
$ch = curl_init();
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_VERBOSE => 0,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERAGENT => "", //"Mozilla/4.0 (compatible;)
CURLOPT_POST => true, //啟用post
CURLOPT_POSTFIELDS => $postdataarray
);
curl_setopt_array($ch,$options) ; //把陣列放入設定
$result = curl_exec($ch); //開始執行
curl_close($ch);
return $result;
}
$data = array(
"act" => "TEST",
"first" => "HELLOW",
"second" => "WORD",
"third" => "中文字"
);
echo curlfun("http://www.wondershow.tw/test2.php",$data);
?>
====================================================================================
test2.php
====================================================================================
<?
if ($_POST['act'] == "TEST"){
echo "success";
die;
}
echo "error";
?>====================================================================================