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";

?>====================================================================================  

發表迴響