现在的位置: 首页 > 综合 > 正文

php生成xml

2014年06月05日 ⁄ 综合 ⁄ 共 3714字 ⁄ 字号 评论关闭
<?php
	/*ArrayToByte($a,$len)
	 * $a:			需要转换的array数组
	 * $offset:		偏移量
	 * $len:		长度
	 * 返回值		 转换后的byte数组 (ascii)
	 */
	function ArrayToByte($a,$offset,$len)
	{
		$s="1";
		$length=strlen($a);
		//echo "len=".$length."</br>";
		for($i=$offset;$i<$len+$offset;$i++)
			$s[$i-$offset]=chr($a[$i]);
		return $s;
	}
	/*ByteToArray($a)
	 * $a:			需要转换的byte数组   
	 * $offset:		偏移量
	 * $len:		长度
	 * 返回值		 转换后的array数组 (ascii)
	 */

	function ByteToArray($a)
	{
		$s=array();
		$length=strlen($a);
		//echo "len=".$length."</br>";
		for($i=0;$i<$length;$i++)
			$s[$i]=ord($a[$i]);
		return $s;
	}
	/* print_array_hex($a,$len)
	 * $a:			需要打印的array数组 如:$a=array(0x01,0x02,0x03,0x04,0x05);
	 * $len:		长度
	 * 打印结果		01 02 03 04 05
	 */
	function print_array_hex($a,$len)
	{
		$hex=array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
		for($i=0;$i<$len;$i++)
		{
			$temp=$a[$i];
			echo $hex[$temp/16].$hex[$temp%16]." ";
		}
		echo "</br>";
	}

	/* print_byte_hex($a,$len)
	 * $a:			需要打印的byte数组 如:a[5]={0x01,0x02,0x03,0x04,0x05};
	 * $len:		长度
	 * 打印结果		01 02 03 04 05
	 */
	function print_byte_hex($a,$len)
	{
		$hex=array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
		for($i=0;$i<$len;$i++)
		{
			$temp=ord($a[$i]);
			echo $hex[$temp/16].$hex[$temp%16]." ";
		}
		echo "</br>";
	}
	function write_log($array,$ip)
	{
		$hex=array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
	   	$m="";
	   	for($i=0;$i<count($array);$i++)
		{
	     		$m.=" ".$i."=0x".$hex[$array[$i]/16].$hex[$array[$i]%16];
	   	}

	   	$fp=fopen("log.txt","a");
	   	$fc=flock($fp,LOCK_EX);
	   	if($fc)
		{
		   	fwrite($fp,"\n".date("Y-m-d H:i:s")." ".$ip." ".$m."\n");
	       	flock($fp,LOCK_UN);
	  	 }
	   	fclose($fp);
	}
	function write_error_log($info,$ip)
	{
	  	$fp=fopen("error.txt","a");
	   	$fc=flock($fp,LOCK_EX);
	   	if($fc)
		{
		   	fwrite($fp,"\n".date("Y-m-d H:i:s")."  ".$ip."  ".$info."\n");
	       	flock($fp,LOCK_UN);
	  	 }
	   	fclose($fp);
	}
	
	function write_xml($id,$data)
	{
		$id_count=count($id);
		$data_count=count($data);
		//$books [0] = array("aaaaaaaa","vvvvvvv","eeeeeeee");
		//$books [1] = array("vvvvvvv","bbbbbbbbb","eeeeeeee");
		//$books [2] = array("eeeeeeee","fffffffff","eeeeeeee");
		if(!$data_count)
			return 0;
		$doc = new DOMDocument("1.0","utf-8"); 
		$doc->formatOutput = true;
		
		$r = $doc->createElement( "list" );
		$doc->appendChild( $r );
		
		//foreach( $books as $book )
		for($i=0;$i<$data_count;$i++)
		{
			$mydata=$data[$i];
			if($id_count!=count($mydata))      //标签的个数是否与一维数组元素个数一致?
				return 0;
			$b = $doc->createElement( "info" );
			for($j=0;$j<$id_count;$j++)
			{
				$book=$data[$i];
				$name=$doc->createElement($id[$j]);
				$info=$doc->createTextNode($book[$j]);
				$name->appendChild($info);
				$b->appendChild($name);
			}		
			$r->appendChild( $b ); 
		}
		//$doc->save('222.xml');
		return $doc->saveXML();	
	}
	
	function read_xml($xml)
	{
		$a=simplexml_load_string($xml);
		//return $a;
		$result=array();
		for($i=0;$i<count($a);$i++)
		{
			$result[$i]=(array)$a->info[$i];
		}
		return $result;
	}
	//$a=array(0x01,0x02,0x03,0x04,0x05);
	//write_log($a);
	/*print_hex($a,5);
	$b="1";
	$b=ArrayToByte($a,5);
	print_ascii_hex($b,5);*/
?>


<?php
	require_once("../function/function.php");
	$id=array("epc","jingdu","weidu","time");
	$books=array();
	$books [0] = array("1111111111","202","222","2011");
	$books [1] = array("222222222222","303","321","2011");
	$books [2] = array("1234343434","403","203","2011");
	$s=write_xml($id,$books);
	//$a=simplexml_load_string($s);
	//$d=$a->info;
	//$d=$a['info'];
	//echo $d->title;
	print_r($s);
?>
 

<?xml version="1.0" encoding="utf-8"?>
<list>
  <info>
    <epc>1111111111</epc>
    <jingdu>202</jingdu>
    <weidu>222</weidu>
    <time>2011</time>
  </info>
  <info>
    <epc>222222222222</epc>
    <jingdu>303</jingdu>
    <weidu>321</weidu>
    <time>2011</time>
  </info>
  <info>
    <epc>1234343434</epc>
    <jingdu>403</jingdu>
    <weidu>203</weidu>
    <time>2011</time>
  </info>
</list>
 
 

Array (     [0] => Array         (             [epc] => 2321211111             [jingdu] => 202             [weidu] => 222             [time] => 2011         )

    [1] => Array         (             [epc] => 222222222222             [jingdu] => 303             [weidu] => 321             [time] => 2011         )

    [2] => Array         (             [epc] => 1234343434             [jingdu] => 403             [weidu] => 203             [time] => 2011         )

)  

 




抱歉!评论已关闭.