PHP工作学习中, 经常会遇到API接口的应用, 因为没有接触过, 就会感觉到非常难以下手, 这里给大家一个简单的PHP实例, 希望对大家有所帮助!
实例功能:简单实现API接口实例操作 1, 新闻标题添加 2, 新闻标题查询
client.php: 客户端[调取信息的一端] service.php: 服务端[返回信息的一端]
数据库大家自行导入,设置 fun.php中
$dsn = "mysql:host=localhost;dbname=myapi";
$db = new PDO($dsn, 'root', 'root');
为追求简单, 这里没有任何超级的逻辑, 都是简单的理解, 对于不认识的函数,大家可以百度下了解下什么意思, 下面就直接上代码了, 代码的最后可以直接下载源代码
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表示参数错误
exit(json_encode($output)); //将php数组转换为JSON格式返回
}
$title = isset($_GET["title"])?$_GET["title"]:"";
if(empty($title)){
$success = '1';
$output = array('success'=>$success); //1表示标题为空
exit(json_encode($output));
}
$db = conndb(); //连接数据库
if($action=="add"){ //新闻标题查询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 查询到新闻信息
else{$success = '4';} //没有查询到新闻信息
$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' 查询信息
'title' => '南昌雅腾'
);
$param = http_build_query($data); //用法 http://www.ncyteng.com/news/show/86;
$requesturl= "http://localhost:88/php/api/service.php?".$param;
//完整的访问路径如http://www.ncyteng.com/service.php, 调用时修改为自己的域名接口完整网址sss
//echo $requesturl;
//通过curl方式获取json数据
$curl = curl_init(); //初始化
curl_setopt($curl, CURLOPT_URL, $requesturl);//设置抓取的url 为 $requesturl
curl_setopt($curl, CURLOPT_HEADER, 0);//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置获取的信息以文件流的形式返回,而不是直接输出。
$data = curl_exec($curl);//执行命令
curl_close($curl);//关闭URL请求
$obj=json_decode($data);
$success = $obj->success;
$status = "";
switch($success){
case '0': $status = "参数传递错误";break;
case '1': $status = "添加新闻标题不能为空";break;
case '2': $status = "添加新闻成功";break;
case '3': $status = "查询到信息";break;
}
echo $status."<br/>";
if($success=="3"){
$result = $obj->result;
foreach($result as $row){ //注意每个$row这里是一个对象, 而不是一个数组
echo "标题:".$row->title."<br/>";
}
}
源码下载: /public/static/uploads/pic/201612/29/2016122955108320370351.zip
