设为首页 加入收藏

TOP

PHP做APP接口-JSON和XML(二)
2015-04-07 15:28:32 来源: 作者: 【 】 浏览:104
Tags:PHP APP 接口 -JSON XML
"]} },
? ? ? ? ? ? { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
? ? ? ? ? ? { name: "台湾", citys: { city: ["台北", "高雄"]} },
? ? ? ? ? ? { name: "新疆", citys: { city: ["乌鲁木齐"]} }
? ? ? ? ? ? ]
? ? ? ? }
编码的可读性来说,XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读,所以通过JSON的索引country.provinces[0].name就能够读取“黑龙江”这个值。
编码的手写难度来说,XML还是舒服一些,好读当然就好写。不过写出来的字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而XML却包含很多重复的标记字符。


二、输出json
代码如下:


json_endoce: http://cn.php.net/json_encode



json_dedoce: http://cn.php.net/json_decode


json_encode — 对变量进行 JSON 编码,并返回 value 值的 JSON 形式,例如:


?代码如下:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
以上代码执行后输出:


?代码如下:
{"a":1,"b":2,"c":3,"d":4,"e":5}
假如要编码的数据源(一般是一个数组),value 中包含中文,经过 json_encode 处理后输出的是 unicode 编码。


?代码如下:
$arr = array ('a'=>'脚本之家');
echo json_encode($arr);
?>



以上代码执行后输出:


?代码如下:
{"a":"\u811a\u672c\u4e4b\u5bb6"}
PHP 底层已经做了 unicode 处理,如果嫌它不够直观,可以利用 urlencode 和 urldecode 方法绕过这个转码为 unicode 的过程:


?代码如下:
$arr = array ('a'=>urlencode('脚本之家'));
echo urldecode(json_encode($arr));
以上代码执行后输出:


?代码如下:
{"a":"脚本之家"}


?


二、输出XML



第一种方法:



?代码如下:
header("Content-type: text/xml");
echo "";
echo "";
echo "";
? echo "";
? ? echo "小小菜鸟";
? echo "
";
? echo "";
? ? echo "24";
? echo "
";
? echo "";
? ? echo "男";
? echo "
";
echo "
";
echo "";
? echo "";
? ? echo "艳艳";
? echo "
";
? echo "";
? ? echo "23";
? echo "
";
? echo "";
? ? echo "女";
? echo "
";
echo "
";
echo "
";
?>



第二种方法:


?代码如下:


header("Content-type: text/xml");
echo "";
echo "小小菜鸟24艳艳23";
?>



第三种方法:


?代码如下:


/*
用PHP的DOM控件来创建XML输出
设置输出内容的类型为xml
*/
header('Content-Type: text/xml;');
//创建新的xml文件
$dom = new DOMDocument('1.0', 'utf-8');


//建立元素
$response = $dom->createElement('response');
$dom->appendChild($response);


//建立元素并将其作为的子元素
$books = $dom->createElement('books');
$response->appendChild($books);


//为book创建标题
$title = $dom->createElement('title');
$titleText = $dom->createTextNode('PHP与AJAX');
$title->appendChild($titleText);


//为book创建isbn元素
$isbn = $dom->createElement('isbn');
$isbnText = $dom->createTextNode('1-21258986');
$isbn->appendChild($isbnText);


//创建book元素
$book = $dom->createElement('book');
$book->appendChild($title);
$book->appendChild($isbn);


//将作为子元素
$books->appendChild($book);


//在一字符串变量中建立XML结构
$xmlString = $dom->saveXML();


//输出XML字符串
echo $xmlString;


?>


--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 --------------------------------------


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇YII框架网站开发流程 下一篇Yii使用DAO进行增删改查操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: