通信数据的标准格式:
code状态码(200,400等);
message提示信息(登录失败,数据返回成功等);
data返回数据;
1、json 方式封装通信接口
立即学习“PHP免费学习笔记(深入)”;
方法:json_encode($value);
注:该函数只能接受utf-8编码的数据;如果传递其他格式的数据该函数会返回null;
<span><?php
</span><span> class </span>Response
{
<span><em>/**
</em></span><span><em> * </em></span><span宋体'"><em>按</em></span><span><em>json</em></span><span宋体'"><em>方式输出通信数据
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@param </em></span><span><em>int $code </em></span><span宋体'"><em>状态码
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@param </em></span><span><em>string $message </em></span><span宋体'"><em>提示信息
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@param </em></span><span><em>array $data </em></span><span宋体'"><em>数据
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@return </em></span><span><em>string
</em></span><span><em> */
</em></span><span><em></em></span><span>public static function </span><span>json</span>(<span>$code</span><span>,</span><span>$message</span>=<span>''</span><span>,</span><span>$data</span>=<span>array</span>())
{
<span>if</span>(!is_numeric(<span>$code</span>)) <span>return </span><span>''</span><span>;
</span><span></span><span>$result </span>= <span>array</span>(
<span>'code'</span>=><span>$code</span><span>,
</span><span></span><span>'message'</span>=><span>$message</span><span>,
</span><span></span><span>'data'</span>=><span>$data</span><span>,
</span><span></span>)<span>;
</span><span></span><span>echo </span><span>json_encode</span>(<span>$result</span>)<span>;
</span><span></span><span>exit</span><span>;
</span><span></span>}
}
<span>?></span>2、xml的方式封装通信接口
方法:php生成xml数据;
首先php如何生成xml数据,总结有两种方法:
1.组装成xml字符串;
2.使用系统类(DomDocument、XMLWriter、SimpleXML);
<span><?php
</span><span> class </span>Response
{
<span><em>/**
</em></span><span><em> * </em></span><span宋体'"><em>按</em></span><span><em>xml</em></span><span宋体'"><em>方式输出通信数据
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@param </em></span><span><em>int $code </em></span><span宋体'"><em>状态码
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@param </em></span><span><em>string $message </em></span><span宋体'"><em>提示信息
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@param </em></span><span><em>array $data </em></span><span宋体'"><em>数据
</em></span><span宋体'"><em></em></span><span><em>* </em></span><span><em>@return </em></span><span><em>void
</em></span><span><em> */
</em></span><span><em></em></span><span>public static function </span><span>xmlEncode</span>(<span>$code</span><span>,</span><span>$message</span>=<span>''</span><span>,</span><span>$data</span>=<span>array</span>())
{
<span>$r </span>= <span>''</span><span>;
</span><span></span><span>if</span>(!is_numeric(<span>$code</span>)) <span>$r </span>= <span>''</span><span>;
</span><span></span><span>$result </span>= <span>array</span>(
<span>'code'</span>=><span>$code</span><span>,
</span><span></span><span>'message'</span>=><span>$message</span><span>,
</span><span></span><span>'data'</span>=><span>$data</span><span>,
</span><span></span>)<span>;
</span><span></span><span></span>header(<span>"Content-Type:text/xml"</span>)<span>;
</span><span></span><span>$xml </span>= <span>"<?xml version='1.0' encoding='UTF-8'?></span><span>\n</span><span>"</span><span>;
</span><span></span><span>$xml </span>.= <span>"<root></span><span>\n</span><span>"</span><span>;
</span><span></span><span>$xml </span>.= <span>self</span>::<span><em>xmlToEncode</em></span>(<span>$result</span>)<span>;
</span><span></span><span>$xml </span>.= <span>"</root>"</span><span>;
</span><span></span><span>$r </span>= <span>$xml</span><span>;
</span><span></span><span>echo </span><span>$r</span><span>;
</span><span></span>}
<span>public static function </span><span>xmlToEncode</span>(<span>$data</span>)
{
<span>$xml </span>= <span>$attr </span>= <span>""</span><span>;
</span><span></span><span>foreach</span>(<span>$data </span><span>as </span><span>$key</span>=><span>$value</span>)
{
<span>if</span>(is_numeric(<span>$key</span>))
{
<span>$attr </span>= <span>"id='</span>{<span>$key</span>}<span>'"</span><span>;
</span><span></span><span>$key </span>= <span>'item'</span><span>;
</span><span></span>}
<span>$xml </span>.= <span>"<</span>{<span>$key</span>} {<span>$attr</span>}<span>>"</span><span>;
</span><span></span><span>$xml </span>.= is_array(<span>$value</span>)?<span>self</span>::<span><em>xmlToEncode</em></span>(<span>$value</span>):<span>$value</span><span>;
</span><span></span><span>$xml </span>.= <span>"</</span>{<span>$key</span>}<span>></span><span>\n</span><span>"</span><span>;
</span><span></span>}
<span>return </span><span>$xml</span><span>;
</span><span></span>}
}
<span>?></span>
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了PHP_APP通信接口—封装通信接口的方法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。











