⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xml.class.php

📁 ShopEx网上商店系统V4.8版是中国最大的网店软件提供商ShopEx旗下网上商店最新版本。此次新版本的系统底层设计做出了重大调整
💻 PHP
字号:
<?php/*	[UCenter] (C)2001-2008 Comsenz Inc.	This is NOT a freeware, use is subject to license terms	$Id: db.class.php 12126 2008-01-11 09:40:32Z heyond $*/function xml_unserialize(&$xml) {	$xml_parser = new XML();	$data = $xml_parser->parse($xml);	$xml_parser->destruct();	$arr = xml_format_array($data);	return $arr['root'];}function xml_serialize(&$data, $htmlon = 0, $level = 1) {	$space = str_repeat("\t", $level);	$cdatahead = $htmlon ? '<![CDATA[' : '';	$cdatafoot = $htmlon ? ']]>' : '';	$s = '';	if(!empty($data)) {		foreach($data as $key=>$val) {			if(!is_array($val)) {				$val = "$cdatahead$val$cdatafoot";				if(is_numeric($key)) {					$s .=  "$space<item_$key>$val</item_$key>";				} elseif($key === '') {					$s .= '';				} else {					$s .= "$space<$key>$val</$key>";				}			} else {				if(is_numeric($key)) {					$s .=  "$space<item_$key>".xml_serialize($val, $htmlon, $level+1)."$space</item_$key>";				} elseif($key === '') {					$s .= '';				} else {					$s .= "$space<$key>".xml_serialize($val, $htmlon, $level+1)."$space</$key>";				}			}		}	}	$s = preg_replace("/([\x01-\x09\x0b-\x0c\x0e-\x1f])+/", ' ', $s);	return ($level == 1 ? "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><root>" : '').$s.($level == 1 ? '</root>' : '');}function xml_format_array($arr, $level = 0) {	foreach((array)$arr as $key=>$val) {		if(is_array($val)) {			$val = xml_format_array($val, $level + 1);		}		if(is_string($key) && strpos($key, 'item_') === 0) {			$arr[intval(substr($key, 5))] = $val;			unset($arr[$key]);		} else {			$arr[$key] = $val;		}	}	return $arr;}class XML {	var $parser;	var $document;	var $parent;	var $stack;	var $last_opened_tag;	function XML() {		$this->parser = xml_parser_create('ISO-8859-1');		xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);		xml_set_object($this->parser, $this);		xml_set_element_handler($this->parser, 'open','close');		xml_set_character_data_handler($this->parser, 'data');	}	function destruct() {		xml_parser_free($this->parser);	}	function parse(&$data) {		$this->document = array();		$this->stack	= array();		$this->parent   = &$this->document;		return xml_parse($this->parser, $data, true) ? $this->document : NULL;	}	function open(&$parser, $tag, $attributes) {		$this->data = '';		$this->last_opened_tag = $tag;		if(is_array($this->parent) and array_key_exists($tag,$this->parent)) {			if(is_array($this->parent[$tag]) and array_key_exists(0,$this->parent[$tag])) {				$key = count_numeric_items($this->parent[$tag]);			}else{				if(array_key_exists($tag.'_attr',$this->parent)) {					$arr = array('0_attr'=>&$this->parent[$tag.'_attr'], &$this->parent[$tag]);					unset($this->parent[$tag.'_attr']);				} else {					$arr = array(&$this->parent[$tag]);				}				$this->parent[$tag] = &$arr;				$key = 1;			}			$this->parent = &$this->parent[$tag];		} else {			$key = $tag;		}		if($attributes) {			$this->parent[$key.'_attr'] = $attributes;		}		$this->parent  = &$this->parent[$key];		$this->stack[] = &$this->parent;	}	function data(&$parser, $data) {		if($this->last_opened_tag != NULL)			$this->data .= $data;	}	function close(&$parser, $tag) {		if($this->last_opened_tag == $tag) {			$this->parent = $this->data;			$this->last_opened_tag = NULL;		}		array_pop($this->stack);		if($this->stack) $this->parent = &$this->stack[count($this->stack)-1];	}}function count_numeric_items(&$array) {	return is_array($array) ? count(array_filter(array_keys($array), 'is_numeric')) : 0;}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -