PHP封装app的方法:1、创建json.PHP文件和demo.PHP文件;2、在PHP中用数组表示JSON格式数据;3、将数组封闭成JSON数据即可。
本文操作环境:windows7系统、PHP7.4版、DELL G3电脑
使用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的!
如何生成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教程》
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。