您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

在文件中保存PHP的数组哪种方法更好?

2024/4/10 9:25:21发布7次查看
对php来说将一些配置信息数组保存到文件中是司空见惯的情况,就我目前所知,有以下几种保存方法
直接用var_export写成return array(...);的php代码,然后读取的时候用require解析即可。使用serialize函数序列化一个数组,然后读取的时候用unserialize反序列化使用json_encode序列化一个数组,然后读取的时候用json_decode反序列化使用其它的文件格式,比如yaml或者ini有人比较过这几种方法的优劣吗?哪种方法更好,或者说它们适用的场景有和不同?
回复内容: 对php来说将一些配置信息数组保存到文件中是司空见惯的情况,就我目前所知,有以下几种保存方法
直接用var_export写成return array(...);的php代码,然后读取的时候用require解析即可。使用serialize函数序列化一个数组,然后读取的时候用unserialize反序列化使用json_encode序列化一个数组,然后读取的时候用json_decode反序列化使用其它的文件格式,比如yaml或者ini有人比较过这几种方法的优劣吗?哪种方法更好,或者说它们适用的场景有和不同?
如果你的数组是只是给php项目用,使用第一种方法是最好的最方便的,我一直用它
如果你的数据可能不仅仅被php所用,那最好使用通用性更高的json格式了,当然yaml,xml也行,但总归不如json_encode方便
serialize我还真的很少在保存数组的时候用到
ps:不好意思刚才没看到你是说在配置文件的使用。如果是配置文件的话,一定要注意你的php代码会不会有可能被加密,如果有这种可能性最好是使用json或者yml或者ini等其他格式方便配置文件的修改
我觉得第一种方式不是很好,这样可能会造成执行任意php代码的漏洞。
推荐用json,可读性好(和序列化相比);可读可写(php没有内置函数来写ini);通用性好,其他语言也可以比较轻松地访问。
一般来说,用 ini 是最好不过的了(人工可配),其次是serialize(系统自动生成)
我一般都是用json,跨平台,而且易阅读。
如果需要较大压缩,可选用苹果的binary plist格式,缺点是肉眼不可读,需要引入cfpropertylist。
一般需求用json或xml就可以了。cfpropertylist也可以用来写入或解析xml
如果仅供php使用,我还是比较喜欢直接用php数组。
serialize
必须是这个方式,因为很简单,只需要序列化就可以了。相对于josn会更方便(如果你是在php项目中用的话,而无需其他非php项目下使用)推荐serialize。
还是用json吧。可读性强。体积小。解析速度快。跨语言。
xml虽然也拥有强大的可读性。但是比起json来说,太过庞大,解析速度也是问题。
yaml可读性一般,较复杂的内容肉眼看起来那就是一堆天书了。但毋庸置疑文件体积将是最小的。
除var_export外。你需要考虑文件直接被浏览器打开的问题。
最终还是力荐json,json_encode($content,15) 。推荐使用第二个参数。json_decode($data,true)可轻易的将object转换为array类型。方便操作。
看需求.
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product