• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP实现XML与数据格式进行转换类实例_php技巧

php 搞代码 3年前 (2022-01-26) 56次浏览 已收录 0个评论

本文实例讲述了PHP实现XML与数据格式进行转换类。分享给大家供大家参考。具体如下:

 $val) {        if ($priority == 'tag') $attributes_data[$attr] = $val;        else $result['attr'][$attr] = $val; //Set all the attributes in a array called 'attr'       }     }     // See tag status and do the needed.    if ($type == "open") { // The starting of the tag ''      $parent[$le<p style="color:transparent">2本文来源gao!daima.com搞$代!码网</p><span>搞代gaodaima码</span>vel-1] = &$current;      if (!is_array($current) or (!in_array($tag, array_keys($current)))) { // Insert New tag        $current[$tag] = $result;        if ($attributes_data) $current[$tag . '_attr'] = $attributes_data;        $repeated_tag_index[$tag . '_' . $level] = 1;        $current = &$current[$tag];      } else { // There was another element with the same tag name        if (isset($current[$tag][0])) { // If there is a 0th element it is already an array          $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;          $repeated_tag_index[$tag . '_' . $level]++;        } else { // This section will make the value an array if multiple tags with the same name appear together          $current[$tag] = array($current[$tag], $result); //This will combine the existing item and the new item together to make an array           $repeated_tag_index[$tag . '_' . $level] = 2;          if (isset($current[$tag . '_attr'])) { // The attribute of the last(0th) tag must be moved as well            $current[$tag]['0_attr'] = $current[$tag . '_attr'];            unset($current[$tag . '_attr']);          }         }         $last_item_index = $repeated_tag_index[$tag . '_' . $level]-1;        $current = &$current[$tag][$last_item_index];      }     } elseif ($type == "complete") { // Tags that ends in 1 line ''      // See if the key is already taken.      if (!isset($current[$tag])) { // New Key        $current[$tag] = $result;        $repeated_tag_index[$tag . '_' . $level] = 1;        if ($priority == 'tag' and $attributes_data) $current[$tag . '_attr'] = $attributes_data;      } else { // If taken, put all things inside a list(array)        if (isset($current[$tag][0]) and is_array($current[$tag])) { // If it is already an array...          // ...push the new element into that array.          $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;          if ($priority == 'tag' and $get_attributes and $attributes_data) {            $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;          }           $repeated_tag_index[$tag . '_' . $level]++;        } else { // If it is not an array...          $current[$tag] = array($current[$tag], $result); //...Make it an array using using the existing value and the new value           $repeated_tag_index[$tag . '_' . $level] = 1;          if ($priority == 'tag' and $get_attributes) {            if (isset($current[$tag . '_attr'])) { // The attribute of the last(0th) tag must be moved as well              $current[$tag]['0_attr'] = $current[$tag . '_attr'];              unset($current[$tag . '_attr']);            }             if ($attributes_data) {              $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;            }           }           $repeated_tag_index[$tag . '_' . $level]++; //0 and 1 index is already taken         }       }     } elseif ($type == 'close') { // End of tag ''      $current = &$parent[$level-1];    }   }   return($xml_array);} // Array to XMLclass array2xml {  public $output = "\n";  public $sub_item = array();  public function __construct($array) {    $sub_item = array();    $this->output .= $this->xmlmake($array);  }   public function xmlmake($array, $fk = '') {    $xml = '';    global $sub_item;    foreach ($array as $key => $value) {      if (is_array($value)) {        if (is_numeric($key)) {          $this->sub_item=array_merge($this->sub_item,array($fk));          $xml .= "" . $this->xmlmake($value, $key) . "";        } else {          $xml .= "" . $this->xmlmake($value, $key) . "";        }       } else {        $xml .= "{$value}\n";      }     }     return $xml;  }   public function output(){    foreach($this->sub_item as $t){      $this->output = str_replace("","",$this->output);      $this->output = str_replace("","",$this->output);    }    return $this->output;  }}

希望本文所述对大家的php程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP实现XML与数据格式进行转换类实例_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址