使用php封装APP接口
php封装APP接口
我们先来介绍Json的封装方法
json_encode函数传递中文的话,输出后是乱码的,针对这个问题我觉得有必要做一个解释:
其实json_encode对中文那不是乱码,只是json_encode会将中文转换为unicode编码,所以输出后是这个编码,但不影响我们使用,我们json_decode后就是正常的值了,但如果你想在输出json_encode的时候也是中文的话,其实有一个办法,如下:
echo urldecode(json_encode(urlencode("JSON中文输出解决方案")));
以下上封装接口的Demo:
<?php //服务端 json.php
//php中用数组表示JSON格式数据
header("Content-type:text/html;charset=utf-8");
$arr = array(
'code' => 200,
'message' => '数据返回成功',
'data' => array(
'name' =>'bawei',
'email' =>'www.bawei@qq,com',
),
);
echo json_encode($arr); //将数组封闭成JSON数据 主要函数json_encode;
?>
来看客户端的代码:
//客户端 demo.php
<?php
header("Content-type:text/html;charset=utf-8");
$url = "http://localhost/syphp/app.php"; //URL取绝对路径
$tranlatestr = file_get_contents($url); //获得URL文档 file_get_contents
$bb = json_decode($tranlatestr); //将JSON数据转换成数组
echo $bb->data->website; //取得数组内容字段
?>
相比较起XML封装接口,Json的数据转换比XML简单了许多 仅此一个函数;
但是可读性来说,XML看起来更直观一些,而Json看起来比较乱,费时间;
以上上Json的 下面来弄一个XML的!
方法:php生成XML数据;
如何生成XML数据呢?
以下两种方法可以实现--> 1.组装成XML字符串 2.使用系统类 如:DomDocument、XMLWriter、SimpleXML
先直接上Demo!
<?php
class Response
{ /**
* 按xml方式输出通信数据
* @param int $code 状态码
* @param string $message 提示信息
* @param array $data 数据
* @return void
*/
public static function xmlEncode($code,$message='',$data=array())
{
$r = '';
if(!is_numeric($code)) $r = '';
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
); header("Content-Type:text/xml");
$xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
$xml .= "<root>\n";
$xml .= self::xmlToEncode($result);
$xml .= "</root>";
$r = $xml;
echo $r;
} public static function xmlToEncode($data)
{
$xml = $attr = "";
foreach($data as $key=>$value)
{
if(is_numeric($key))
{
$attr = "id='{$key}'";
$key = 'item';
}
$xml .= "<{$key} {$attr}>";
$xml .= is_array($value)?self::xmlToEncode($value):$value;
$xml .= "</{$key}>\n";
}
return $xml;
}
} ?>
使用php封装APP接口的更多相关文章
- 《PHP开发APP接口》笔记
PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用 ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [3] 首页 APP 接口开发方案 ② 读取缓存方式
以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTim ...
- PHP开发APP接口
第1章 APP接口简介 - 课程简介 (:) - APP接口介绍 (:) - 客户端APP通信 (:) 最近学习 - 客户端APP通信格式区别 (:) - APP接口做的哪些事儿 (:) 第2章 封装 ...
- 如何用php写app接口[原创]
人生就如一列永不停止的列车,no one knows when or where to stop.总有那些美好,值得永远怀念.也总有那些希望,值得你无怨无悔的付出,追逐.去年年底带着女儿一起坐火车会湖 ...
- Java版本APP接口安全设计
Java版本APP接口安全设计 安全设计分为两种: 1.传输安全. 2. 会话安全. 1.传输安全 怎么保证接口经过网络传输不被抓包获取? 1.如果只是使用对称性算法,破解APP拿到加密密钥就可以解密 ...
- PHP接口APP接口
使用PHP来生成APP接口数据是非常简单的,如果你还不了解PHP没有关系,只需要看过PHP的基本语法,再看本示例就可以了. APP接口一般都是json格式(当然也有少数xml格式)遵循restful规 ...
- PHP开发APP接口之返回数据
首先说明一下客户端APP通信的格式 1.xml:扩展标记语言(1.用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,xml格式统一,跨平台和语言,非常适合数据传输和通信,早已 ...
- PHP开发APP接口学习笔记
习要点概述1.APP接口简介 2.封装通信接口方法 3.核心技术 4.APP接口实例 服务器和客户端进行接口数据通信:服务器 -->数据库|缓存 -->调用接口 -->客户端 服务器 ...
- Dcloud课程4 如何进行APP接口开发
Dcloud课程4 如何进行APP接口开发 一.总结 一句话总结:通过json或者xml. 1.APP如何进行通信? 通过在地址上接参数指明传递的数据的类型.而数据传递的类型一般是XML和json. ...
随机推荐
- 数位DP入门题——[hdu2089]不要62
数位DP是我的噩梦. 现在初三了,却没AC过数位DP的题目. 感觉数位DP都是毒瘤-- 题目 hdu不用登录也可以进去,所以就不把题目copy到这里来了. 题目大意 求区间[n,m][n,m][n,m ...
- Ajax 导出Excel 方式
1.使用iframe 加载 使用get方式 <iframe id="comdownshow" height="0" width="0" ...
- light oj 1084 线性dp
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> ...
- Java爬虫的实现
距离上一次写爬虫还是几年前了,那时候一直使用的是httpclient. 由于最近的项目又需要使用到爬虫,因此又重新查询了一些爬虫相关的框架,其中最合适的是WebMagic 官方文档:https://g ...
- $(...).live is not function
项目中引入了一个插件,但是调用的时候就报了$(...).live is not function 上网搜索了一下live方法在1.9中被删除了,因为平时自己用的时候就用on的方法,没用过live,所以 ...
- 2019-8-31-dotnet-控制台读写-Sqlite-提示-no-such-table-找不到文件
title author date CreateTime categories dotnet 控制台读写 Sqlite 提示 no such table 找不到文件 lindexi 2019-08-3 ...
- CF538G (套路题)
CF538G 题目大意 你有一个长度为\(l\)的指令序列,每个指令为向上,向下,向左,向右中的一种. 机器人会循环执行该序列,即,执行完第\(l\)个指令后,就会重新开始执行第一个指令. 现在,给你 ...
- Leetcode221. Maximal Square最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 方法一 ...
- Leetcode144. Binary Tree Preorder Traversal二叉树的前序遍历
给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归: class S ...
- 通过游戏学python 3.6 第一季 第四章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释 可复制直接使用 娱乐 可封装 函数
#猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释 #!usr/bin/env python #-*-coding:utf-8-*- #QQ124111294 import ...