PHP工作學(xué)習(xí)中, 經(jīng)常會(huì)遇到API接口的應(yīng)用, 因?yàn)闆](méi)有接觸過(guò), 就會(huì)感覺(jué)到非常難以下手, 這里給大家一個(gè)簡(jiǎn)單的PHP實(shí)例, 希望對(duì)大家有所幫助!
實(shí)例功能:簡(jiǎn)單實(shí)現(xiàn)API接口實(shí)例操作 1, 新聞標(biāo)題添加 2, 新聞標(biāo)題查詢(xún)
client.php: 客戶(hù)端[調(diào)取信息的一端] service.php: 服務(wù)端[返回信息的一端]
數(shù)據(jù)庫(kù)大家自行導(dǎo)入,設(shè)置 fun.php中
$dsn = "mysql:host=localhost;dbname=myapi";
$db = new PDO($dsn, 'root', 'root');
為追求簡(jiǎn)單, 這里沒(méi)有任何超級(jí)的邏輯, 都是簡(jiǎn)單的理解, 對(duì)于不認(rèn)識(shí)的函數(shù),大家可以百度下了解下什么意思, 下面就直接上代碼了, 代碼的最后可以直接下載源代碼
service.php文件
header("Content-Type: text/html; charset=UTF-8"); require("fun.php"); $success = ''; $output = array(); $action = isset($_GET["action"])?$_GET["action"]:""; if(empty($action)){ $success = '0'; $output = array('success'=>$success); //0表示參數(shù)錯(cuò)誤 exit(json_encode($output)); //將php數(shù)組轉(zhuǎn)換為JSON格式返回 } $title = isset($_GET["title"])?$_GET["title"]:""; if(empty($title)){ $success = '1'; $output = array('success'=>$success); //1表示標(biāo)題為空 exit(json_encode($output)); } $db = conndb(); //連接數(shù)據(jù)庫(kù) if($action=="add"){ //新聞標(biāo)題查詢(xún)s $sql = "insert into news set title = '$title'"; $count = $db->exec($sql); if($count){ $success = '2'; $output = array('success'=>$success); //2 添加新聞成功 exit(json_encode($output)); } } else if($action=="select"){ $sql = "select * from news where title like '%".$title."%'"; $result = query($db,$sql); if($result){$success = '3';}//3 查詢(xún)到新聞信息 else{$success = '4';} //沒(méi)有查詢(xún)到新聞信息 $output = array('success'=>$success,'result'=>$result); exit(json_encode($output)); }
client.php源代碼
header("Content-Type: text/html; charset=UTF-8"); $data = array( 'action' => 'select', //添加信息 'select' 查詢(xún)信息 'title' => '南昌雅騰' ); $param = http_build_query($data); //用法 http://tjegd.cn/news/show/86; $requesturl= "http://localhost:88/php/api/service.php?".$param; //完整的訪問(wèn)路徑如http://tjegd.cn/service.php, 調(diào)用時(shí)修改為自己的域名接口完整網(wǎng)址sss //echo $requesturl; //通過(guò)curl方式獲取json數(shù)據(jù) $curl = curl_init(); //初始化 curl_setopt($curl, CURLOPT_URL, $requesturl);//設(shè)置抓取的url 為 $requesturl curl_setopt($curl, CURLOPT_HEADER, 0);//設(shè)置頭文件的信息作為數(shù)據(jù)流輸出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//設(shè)置獲取的信息以文件流的形式返回,而不是直接輸出。 $data = curl_exec($curl);//執(zhí)行命令 curl_close($curl);//關(guān)閉URL請(qǐng)求 $obj=json_decode($data); $success = $obj->success; $status = ""; switch($success){ case '0': $status = "參數(shù)傳遞錯(cuò)誤";break; case '1': $status = "添加新聞標(biāo)題不能為空";break; case '2': $status = "添加新聞成功";break; case '3': $status = "查詢(xún)到信息";break; } echo $status."<br/>"; if($success=="3"){ $result = $obj->result; foreach($result as $row){ //注意每個(gè)$row這里是一個(gè)對(duì)象, 而不是一個(gè)數(shù)組 echo "標(biāo)題:".$row->title."<br/>"; } }
源碼下載: /public/static/uploads/pic/201612/29/2016122955108320370351.zip