代码改变世界

转载:php的几种常用的数据交换格式

2014-01-06 22:00  嘻哈路飞  阅读(485)  评论(0编辑  收藏  举报

 

   
    序列化(serialize)、变量、xml、json是PHP常见的4种文本数据交换形式。
 
一、序列化与反序列化
    使用serialize与unserialize将可以将任何数据类型(除了资源),格式成文本数据格式,是php内置的,使用最方便,可以原汁原味将数据、对象等保存与恢复再用。
    好处:使用方便,支持好。
    不好:没有通用性只有php能够支持,文本化体积大。
    可能:速度可能会慢。
二、变量
    将数据写成标准的PHP赋值语句存放在文本文件中,在程序执行过程中包含进来,通过执行赋值的操作来恢复变量。discuz经常使用这种方式做为数据的缓存。
    好处:直观。
    不好:没有通用性只有php能够支持;使用不方便,需要自己将数据转化成赋值语句;变量的接收方式也不够灵活。
    可能:速度会快些,与序列化相比存储体积小。
三、xml
    将数据格式化成xml存储与解析。
    好处:通用性强,可以与其它程序语言的数据交换;php已经有内置的函数支持。
    不好:文本化的体积大;格式化与反解效率低。
四、json
    也是类似于xml的一种文本型数据交换格式。是一种为解决xml浏览器数据交换复杂而出现一种新的数据格式。
    好处:通用性强,目前主流的语言已经内置支持了,5.2(具体请查手册)版本已经内置支持。php5以后使用很方便,使用方便与序列化类似。与xml相比有更好的兼容性、效率高,尤其是对于浏览器。而数据格式体积很小。
    可能:效率问题,尤其是解析的效率问题。
 
    在实际中如果都是PHP程序之间来交换数据,那么使用序列化的数组是一个非常方便的而高效的方式。对于一些管理配置性的数据,采用变量可以很直观阅读与修 改。如果与其它语言交换数据使用XML。以上应用都在json出现之前的选择。如果json解析的效率与序列没有大的差别的话,那么我们为什么不选择一个 体质小、速度快、使用方便、兼容性强、尤其浏览器js可以直接使用的数据格式-json呢?