php xml与数组转换问题,封装方法及字符串替换
2018-10-20 19:55
330 查看
版权声明:本文为博主原创,未经博主同意,不得转载! https://blog.csdn.net/qq_39188306/article/details/83216296
[code]/** * [将xml转为array] * @param string $xml xml字符串或者xml文件名 * @param bool $isFile 传入的是否是xml文件名 * @return array 转换得到的数组 */ public static function xmlToArray($xml,$isFile=false){ //禁止引用外部xml实体 libxml_disable_entity_loader(true); if($isFile){ if(!file_exists($xml)) return false; $xmlStr = file_get_contents($xml); }else{ $xmlStr = $xml; } $result= json_decode(json_encode(simplexml_load_string($xmlStr, 'SimpleXMLElement', LIBXML_NOCDATA)), true); return $result; } /** * [数组转xml字符] * @param array $data 需要转换的数组 * @return string $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; }
[code]// Xml 转 一维数组 public static function xmlToData($xml, $true) { return (array)simplexml_load_string($xml); } // Xml 转 数组, 不包括根键 public static function xmlToArray($xml) { $arr = self::xmlToArrayRooted($xml); $key = array_keys($arr); return $arr[$key[0]]; } // Xml 转 数组, 包括根键 public static function xmlToArrayRooted($xml) { $reg = "/<(\\w+)[^>]*?>([\\x00-\\xFF]*?)<\\/\\1>/"; if (preg_match_all($reg, $xml, $matches)) { $count = count($matches[0]); $arr = array(); for ($i = 0; $i < $count; $i++) { $key = $matches[1][$i]; $val = self::xmlToArrayRooted($matches[2][$i]); // 递归 if (array_key_exists($key, $arr)) { if (is_array($arr[$key])) { if (!array_key_exists(0, $arr[$key])) { $arr[$key] = array($arr[$key]); } } else { $arr[$key] = array($arr[$key]); } $arr[$key][] = $val; } else { $arr[$key] = $val; } } return $arr; } else { return $xml; } } //字符串替换 public static function strToData($str, $rule = '') { if (is_array($rule)) { foreach ($rule as $key => $val) { $str = str_replace($val, '', $str); } } else { $str = str_replace($rule, '', $str); } return $str; }阅读更多
相关文章推荐
- PHP数组和字符串互相转换实现方法
- php最简单把xml转换成数组的方法
- PHP实现数组array转换成xml的方法
- PHP中XML和数组互相转换的方法
- PHP 数组和字符串互相转换实现方法
- PHP 数组和字符串互相转换实现方法
- PHP中XML和数组互相转换的方法
- 黄聪:PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)
- PHP 数组和字符串互相转换实现方法
- PHP 数组和字符串互相转换实现方法
- php实现将数组转换为XML的方法
- PHP 数组和字符串互相转换实现方法
- php实现将二维关联数组转换成字符串的方法详解
- PHP XML字符串与数组的转换
- php最简单把xml转换成数组的方法
- php实现xml转换数组的方法示例
- PHP 数组和字符串互相转换实现方法
- PHP 数组和字符串互相转换实现方法
- PHP 数组和字符串互相转换实现方法
- PHP 数组和字符串互相转换实现方法