API就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。本文主要和大家分享PHP关于API接口实例,希望能帮助到大家。

PHP生成JSON数据

json_encode($value) 方法

(response.php和testapi.php)

通信标准格式:

code 状态码 message 提示信息 data返回数据

json如何封装通信数据方法

Response类<?php

classResponse{

/**

*按json方式输出通信数据

*@param integer $code 状态码

*@param string $message 提示信息

*@param array $data 数据

*return string

*/

publicstaticfunction json($code,$message='',$data=array()){

if(!is_numeric($code)){

return'';

}

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data

);

echo json_encode($result);

exit;

}

}

实例使用<?php

require_once('./apitest.php');

$arr=array(

'id'=>1,

'name'=>'huwei',

);

Response::json(200,'数据返回成功',$arr);

PHP生成XML数据

1.组装字符串

2.使用系统类

DomDocument

XMLWriter

SimpleXML

封装XML通信接口

封装方法/**

*按XML方式输出通信数据

*@param integer $code 状态码

*@param string $message 提示信息

*@param array $data 数据

*return string

*/

publicstaticfunction xml($code,$message='',$data=array()){

if(!is_numeric($code)){

return'';

}

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data

);

header("Content-Type:text/xml");//将头信息转换为XML格式

$xml="<?xml version='1.0' encoding='UTF-8'?>\n";

$xml.="\n";

$xml.=self::xmlToEncode($result);

$xml.="";

return $xml;

}

publicstaticfunction xmlToEncode($data){

$xml=$attr="";

foreach($data as $k=>$v){

if(is_numeric($k)){

$attr=" id='{$k}'";

$k="item";

}

$xml.="";

$xml.=is_array($v)?self::xmlToEncode($v):$v;

$xml.="{$k}>";

}

return $xml;

}

实现:

require_once('./apitest.php');

$arr=array(

'id'=>1,

'name'=>'huwei',

'type'=>array(1,2,3)

);

//echo Response::json(200,'数据返回成功',$arr);

echo Response::xml(200,'数据返回成功',$arr);

综合通信方法封装

封装方法

const JSON="json";

/**

*按综合方式输出通信数据

*@param integer $code 状态码

*@param string $message 提示信息

*@param array $data 数据

*@param string $type 类型

*return string

*/

publicstaticfunction show($code,$message='',$data=array(),$type==self::JSON){

if(!is_numeric($code)){

return'';

}

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data,

);

if($type=='json'){

returnself::json($code,$message,$data);

}elseif($type=='array'){

var_dump($result);

}elseif($type=='xml'){

returnself::xml($code,$message,$data);

}else{

//TODO

}

}

调用方式:

require_once('./apitest.php');

$arr=array(

'id'=>1,

'name'=>'huwei',

'type'=>array(1,2,3)

);

//echo Response::json(200,'数据返回成功',$arr);

//echo Response::xml(200,'数据返回成功',$arr);

echo Response::show(200,'数据返回成功',$arr,'array');

缓存技术:

1.静态缓存

保存在磁盘上的静态文件,用PHP生成的数据放入静态缓存文件中

PHP操作缓存(file.php)

生成缓存、获取缓存、删除缓存

封装类<?php

classFile{

private $_dir;// 文件路径

const EXT='.txt';//文件后缀

publicfunction __construct(){

$this->_dir=dirname(__FILE__).'\files\/';//获取该项目同级目录

}

publicfunction cacheData($key,$value='',$path=''){

$filename=$this->_dir.$path.$key.self::EXT;

if($value!==''){//将value值写入缓存

if(is_null($value)){

return@unlink($filename);

}

$dir=dirname($filename);

if(!is_dir($dir)){

mkdir($dir,0777);

}

return file_put_contents($filename,json_encode($value));//若成功返回字节数,不然为false

}

if(!is_file($filename)){

returnFalse;

}else{

return json_decode(file_get_contents($filename),true);

}

}

}

调用类

//require_once('./apitest.php');

require_once('./file.php');

$arr=array(

'id'=>1,

'name'=>'huwei',

'type'=>array(1,2,3)

);

//echo Response::json(200,'数据返回成功',$arr);

//echo Response::xml(200,'数据返回成功',$arr);

//echo Response::show(200,'数据返回成功',$arr,'array');

$file=newFile();

//echo $file->cacheData('index_cache',$arr); //写入操作

//var_dump($file->cacheData('index_cache')); //读取操作

echo $file->cacheData('index_cache',null);//删除操作

2.Memcache,redis

设置缓存操作

获取缓存操作

删除缓存操作

1.Memcache和Redis都是用来管理数据的

2.他们数据都是存放在内存上的

3.Redis可以定期将数据备份到磁盘(持久化)

4.Memchache只是简单的key/value缓存

5.Redis不仅仅支持简单的k/v类型的数据,同时还提供list、set、hash等数据结构的存储

api接口 php_PHP关于API接口实例分享相关推荐

  1. ap接口 php_php中api接口什么用

    新浪短链接api申请 接口1: http://sina-t.cn/api?link=http://baidu.com 接口2: http://tttool.cn/sina_api?url=http:/ ...

  2. 免费手机号码归属地API查询接口和PHP使用实例分享

    免费手机号码归属地API查询接口和PHP使用实例分享 最近在做全国性的行业分类信息网站,需要用到手机号归属地显示功能,于是就穿梭于各大权威站点之间偷来了API的接口地址. 分享出来,大家可以用到就拿去 ...

  3. InfluxData【付诸实践 01】SpringBoot 集成时序数据库 InfluxDB 应用分享(InfluxDB实例+Feign接口调用InfluxDB API)源码分享

    1.InfluxDB实例 1.1 依赖及配置 <dependency><groupId>org.influxdb</groupId><artifactId&g ...

  4. 京东价格api,京东商品详情接口,京东api,京东优惠券接口,京东到手价api接口,京东app详情接口,接口代码对接实现价格监控接口,品牌维权接口,行业分析api接口代码分享

    一.京东价格api,京东商品详情接口,京东api,京东优惠券接口,京东到手价api接口,接口代码对接实现价格监控,行业分析接口代码如下: 点击获取测试key和secret 1.接口请求参数如下: 请求 ...

  5. 天猫商品详情接口,天猫商品优惠券接口,天猫api接口,天猫价格监控接口,天猫比价接口,品牌维权接口,天猫销量api接口,接口代码可对接数据分析业务,品牌维权,比价业务,行业分析业务接口代码分享

    一.天猫商品详情接口,天猫商品优惠券接口,天猫api接口,天猫价格监控接口,天猫比价接口,品牌维权接口,天猫销量api接口,接口代码可对接数据分析业务,品牌维权,比价业务,行业分析业务接口代码如下: ...

  6. Dota2数据Dota2接口电竞api开发比分网分享

    Dota2数据Dota2接口电竞api开发比分网分享@TOC 数据来自marz数据alan@marzesport.com 1.获取赛事 接口:{{host1}}/api/series/9870? {& ...

  7. lol数据英雄联盟接口LOL接口电竞api开发比分网分享@

    英雄联盟数据LOL接口电竞api开发比分网分享@TOC 数据来自marz数据alan@marzesport.com 各大赛区的lol数据都有 1.获取赛事 接口:{{host1}}/api/serie ...

  8. SERP调用企业微信API接口,发送文本信息实例

    SERP企业轻量级ERP(SSDCRM)起源于vtigercrm早期版本.随着我们不停的迭代研发与完善,今日已经形成了自己鲜明的应用风格.我们在完善平台内部功能的基础上,积极研发平台与企业微信,钉钉, ...

  9. java 周易解梦接口_周公解梦大全接口 解梦api分享

    周公解梦大全接口,可根据梦境中梦到的事物解梦. 接口平台:api大全 接口地址: http://v.juhe.cn/dream/query 支持格式:json/xml 请求方式:http get/po ...

最新文章

  1. python数据库框架_Python数据库及ORM框架对比选择
  2. Cororsync+Pacemaker
  3. linux 代码更新-打包-重启脚本
  4. 移动端h5开发总结不断更新中....
  5. Bash游戏 V2(51Nod-1067)
  6. 动荡下如何自救 | 社招一年收割BATDK算法offer
  7. HTTP从入门到入土(1)——五层网络模型
  8. 【转】我眼中的自动化测试框架设计要点
  9. 怎样用python录音_python实现录音功能(可随时停止录音)
  10. 各自然带代表植被_自然带气候植被关系
  11. YD5141SYZ后压缩式垃圾车的上装箱体设计
  12. typecho插件,typechoSEO插件,typecho程序插件
  13. KB、kb和MB、mb有什么区别
  14. 如何利用Pspice仿真C-V特性
  15. YOLOv5+TensorRT+Win11(Python版)
  16. 北大计算机图灵班,北大2019“图灵班”计划招60人,在北大什么条件才能进图灵班?...
  17. 12306极速全自动抢票
  18. Android studio新手:实现最新版QQ登陆界面
  19. 读后感----《我奋斗了18年才和你坐在一起喝咖啡》
  20. python弹出滑块怎么验证_selenium 处理滑块验证的重点

热门文章

  1. C/C++数据结构舞伴问题
  2. 使用VMWare虚拟机创建CentOS版本的Linux学习环境(每一步都有截图与说明)
  3. Kibana - KQL语法
  4. 利用selenium实现淘宝双十一抢购商品
  5. 【Elasticsearch源码】CCR源码分析(二)
  6. exception java .text_java.text.ParseException
  7. msata、mini pcie 、pcie x4接口引脚定义及原理图方案设计
  8. R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口
  9. java 使用subList痛彻心扉的领悟
  10. 利用Java计算计算贷款的月支付金额和总偿还金额