PHP Object array xml json 互转

valueValue
Objectarray
xmlObject
arrayxml
arrayObject
json_encode区别json_decode
  • Object转array
/*
 Object转array
 */
    function objectToArray($array)
    {
        if (is_object($array)) {
            $array = (array) $array;
        }if (is_array($array)) {
            foreach ($array as $key => $value) {
                $array[$key] = objectToArray($value);
            }
        }
        return $array;
    }
  • 解析xml文档,转化为对象
/**
* 解析xml文档,转化为对象
* @param  String $xmlStr xml文档
* @return Object         返回Obj对象
*/
   function xmlToObject($xmlStr)
   {
       if (!is_string($xmlStr) || empty($xmlStr)) {
           return false;
       }
       // 由于解析xml的时候,即使被解析的变量为空,依然不会报错,会返回一个空的对象,所以,我们这里做了处理,当被解析的变量不是字符串,或者该变量为空,直接返回false
       libxml_disable_entity_loader(true);
       $postObj = json_decode(json_encode(simplexml_load_string($xmlStr, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
       //将xml数据转换成对象返回
       return $postObj;
   }
  • 数组转xml字符
/**
 * 数组转xml字符
 * @param  string   $xml xml字符串
 **/
    function arrayToXml($data)
    {
        if (!is_array($data) || count($data) <= 0) {
            return false;
        }
        $xml = "<xml>";
        foreach ($data as $key => $val) {
            if (is_numeric($val)) {
                $xml .= "<" . $key . ">" . $val . "</" . $key . ">";
            } else {
                $xml .= "<" . $key . "><![CDATA[" . $val . "]]></" . $key . ">";
            }
        }
        $xml .= "</xml>";
        return $xml;
    }
  • 数组转对象
/*
* 数组转对象
* json_encode()
* 示例:
*   $arr_1 = ['one', 'two', 'three'];
var_dump(json_encode($arr_1));
*/
json_encode()
  • json_encode 区别 json_decode

json_encode(); 输出一个json数据
json_decode($data,true);输出的一个关联数组,

json_encode()和json_decode()是编译和反编译过程,注意json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值