您的位置:首页 > 移动开发

使用php封装APP接口

2016-10-18 11:35 316 查看

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

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: