PHP 开发 APP 接口--XML篇

1.PHP 生成 XML 数据

① 拼接字符串

② 使用系统类(DomDocument,XMLWriter,SimpleXML)

例1 使用 PHP 系统类中的 DomDocument 类:

<?php
$dom = new DomDocument(‘1.0‘,‘utf-8‘);
$element = $dom->createElement(‘test‘,‘This is a root element‘);
$dom->appendChild($element);
echo $dom->saveXML();

页面输出

This is a root element

查看源代码显示:

<?xml version="1.0" encoding="utf-8"?>
<test>This is a root element</test>

例2 拼接字符串

//修改 http 头信息
header("Content-Type:text/xml");
//xml头信息
$xml = "<?xml version=‘1.0‘ encoding=‘utf-8‘?>\n";
//根节点开始标签
$xml .= "<root>\n";
//code
$xml .= "<code>200</code>\n";
//message
$xml .= "<message>数据返回成功</message>\n";
//data
$xml .= "<data>\n";
$xml .= "<id>1</id>\n";
$xml .= "<name>John</name>\n";
$xml .= "</data>\n";
//根节点结束标签
$xml .= "</root>";

echo $xml;
exit();

页面输出:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<root>
<code>200</code>
<message>数据返回成功</message>
<data>
<id>1</id>
<name>John</name>
</data>
</root>

http 响应头信息:

2.XML 方式封装通信接口

<?php

class Response{
    /**
    * 按 xml 方式输出通信数据
    * @param integer $code 状态码
    * @param string $message 提示信息
    * @param array $data 数据
    * return string
    */
    public static function xml($code,$message,$data){

        if(!is_numeric($code)){
            return ‘‘;
        }

        $result = array(
            ‘code‘ => $code,
            ‘message‘ => $message,
            ‘data‘ => $data
        );

        //修改 http 头信息
        header("Content-Type:text/xml");
        //xml头信息
        $xml = "<?xml version=‘1.0‘ encoding=‘utf-8‘?>";
        //根节点开始标签
        $xml .= "<root>";

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

        //根节点结束标签
        $xml .= "</root>";

        echo $xml;
        exit();
    }

    //解析$result至xml
    public static function xmlToEncode($data){
        $xml = $attr = "";
        foreach($data as $k=>$v){
            //如果$k是数字(data(code,message,data中的data)数据里面还含有索引数组),要进行如下判断
            if(is_numeric($k)){
                $attr = "id=‘{$k}‘";
                $k = ‘item ‘;
            }

            $xml .= "<{$k} {$attr}>";
            //如果$v是数组,则递归调用该方法
            if(is_array($v)){
                $xml .= self::xmlToEncode($v);
            }else{
                $xml .= $v;
            }
            $xml .= "</{$k}>";
        }

        return $xml;
    }
}

调用该页面 test.php

$data 第一种情况:

<?php
require ‘response.php‘;

$data = array(
    ‘id‘=>1,
    ‘name‘=>‘Mary‘
);
Response::xml(200,‘数据返回成功‘,$data);

页面输出:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<root>
<code>200</code>
<message>数据返回成功</message>
<data>
<id>1</id>
<name>Mary</name>
</data>
</root>

$data 第二种情况

<?php
require ‘response.php‘;

$data = array(
    ‘id‘=>1,
    ‘name‘=>‘Mary‘,
    ‘type‘=>array(1,3,6) //<0>1</0><1>3</1><2>6</2>  => <item id="0">1</item>...
);

Response::xml(200,‘数据返回成功‘,$data);

页面输出:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<root>
<code>200</code>
<message>数据返回成功</message>
<data>
<id>1</id>
<name>Mary</name>
<type>
<item id="0">1</item>
<item id="1">3</item>
<item id="2">6</item>
</type>
</data>
</root>

$data 第三中情况:

<?php
require ‘response.php‘;

$data = array(
    ‘id‘=>1,
    ‘name‘=>‘Mary‘,
    ‘type‘=>array(‘a‘=>1,‘b‘=>3,‘c‘=>6)
);
Response::xml(200,‘数据返回成功‘,$data);

页面输出:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<root>
<code>200</code>
<message>数据返回成功</message>
<data>
<id>1</id>
<name>Mary</name>
<type>
<a>1</a>
<b>3</b>
<c>6</c>
</type>
</data>
</root>

原文地址:https://www.cnblogs.com/lxj0205/p/9983104.html

时间: 2024-10-04 20:03:21

PHP 开发 APP 接口--XML篇的相关文章

PHP 开发 APP 接口 --Redis篇

① 开启 redis 服务: [[email protected] bin]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf ② 开启 redis 终端: [[email protected] bin]# ./redis-cli ③ 设置缓存值: 127.0.0.1:6379> set index-mk-cache '数据' ④ 获取缓存数据: 127.0.0.1:6379> get index-mk-cac

PHP 开发 APP 接口 --JSION篇

1.通信数据的标准格式 ( JSON ),包括: code:状态码(200,400等) message:提示信息(例如:数据返回成功.邮箱格式错误等) data:返回数据 2.JSON 方式封装通信接口 response.php <?php /** * 按json方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ class Res

PHP开发APP接口(二)

这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) [php] view plain copy print? <?php // http://app.com/list.php?page-=1&pagesize=12 require_once('./response.php'); require_once('./file.php'); $file = new File(); $data = $file->cacheData('index_cron_cahce'); i

小蚂蚁学习APP接口开发(7)—— APP接口实例——读取缓存方式开发APP接口的代码案例

从数据库中直接读取数据,虽然时效性很强,但是对数据库造成很大压力,尤其是在高访问量的情况下.这时候可以通过缓存,来有效的缓解了这一压力,虽然时效性有些不足,但是服务器的抗压能力却达到了很大的提高. 读取缓存方式的中心思想: 当请求进来时,先查看是否有缓存,如果有并且缓存还在有效时间内,不再查询数据库,直接返回缓存即可:如果没有或者已经过了有效时间,查询数据库,返回数据,同时生成一份新的缓存,供以后使用. 代码案例,还是在前几天的代码基础上进行改造完善. File静态缓存类    (原来的代码请参

PHP开发APP接口(七)

APP接口实例 单例模式连接数据库首页接口的开发以及客户端app的演示APP版本升级接口APP错误日志的接口 单例模式连接数据库学习要点:掌握单例模式设计php连接数据库 单例模式:一个类只能拥有一个实例:<?php class Db{    puclic function __construct(){ }} $db=new Db();$db1=new Db();普通的类可以产生多个实例 单例模式三大原则:1.构造函数需要标记为非Public(防止外部使用new操作符创建对象),单例类不能在其他

PHP开发APP接口(八)

首页接口的开发以及客户端app的演示方案一:读取数据库方式开发首页接口从数据库获取信息 封装 生成接口数据应用场景:数据是时效性比较高的系统 方案二:读取缓存方式开发首页接口从数据库获取信息 封装写入缓存 设定缓存失效时间 返回数据在缓存时效内请求是从缓存里面获取数据:用途:减少数据库的压力,用途很广,搜狐视频,优酷首页 方案三:定时读取缓存方式开发首页接口定时生成缓存 应用端请求生存好的缓存 方案一:如何获取数据,如何将获取的数据快速生成接口数据 安装start bluestacks安卓模拟器

PHP 开发 APP 接口总结 - JSON 结合 XML 方式封装通信接口

要求: 1.在一个类中封装多种数据通信方法(JSON,XML),并且只通过一个入口选择需要的数据通信格式 2.客户端开发工程师可以自行选择数据传输格式(GET 方式) response.php <?php class Response{ const JSON = 'json'; //封装的综合方法,默认的数据类型为json public static function show($code,$message = '',$data,$type = self::JSON){ if(!is_numer

夺命雷公狗---PHP开发APP接口---2(手动编写XML)

封装通信接口的方法 PHP生成XML数据 1.组装字符串 2.使用系统类 DomDocument XMLWriter SimpleXML 这些类均可在PHP手册上查找到 如: DOMDocument::createElement — Create new element node(创建一个新的节点) 具体使用方法手册下面找到的列子: <?php $dom = new DOMDocument ( '1.0' , 'utf-8' ); $element = $dom -> createElemen

PHP 开发 APP 接口总结 - XML 方式封装通信接口

1.PHP 生成 XML 数据 ① 拼接字符串 ② 使用系统类(DomDocument,XMLWriter,SimpleXML) 例1 使用 PHP 系统类中的 DomDocument 类: <?php $dom = new DomDocument('1.0','utf-8'); $element = $dom->createElement('test','This is a root element'); $dom->appendChild($element); echo $dom-&