§@ªÌ¡J§H¦W | ¨Ó·½¡Jºôµ¸ | ²K¥[®É¶¡¡J2006-03-21 13:14:17 | ¤H®ð¡J1352
<?
// ¥»¤H¤£¼ô±xXML¡A¥i¯àª`¸Ñ¹ïXMLªº´yz¦³»~
// ³o¥u¬OÓ«ä·Q¡An¹ê²{ªº¸ÜÀ³¸Ó²¤¥[×¾ã¡A¥i¥H§â¤@¨Ç¤£±`¥Î±ø¥ó¬d¸ßªº¼Æ¾Ú¥ÎXML«O¦s
// ¦pµêÀÀªÀ°Ïªº ¥Î¤á¸ê®Æ¡A¤@¯ë¥u¦³¥Î¤á¦Û¤v©Î¨ä¥L¥Î¤á«ü©w¤F¥LªºUSERNAME¤~·|Åã¥Ü
// ³Ñ¤U¨C¦¸³£n¶}±Ò¡B¬d¸ß¡B¸ÑÄÀ¼Æ¾Ú¶°¡BÃö³¬¼Æ¾Ú®wªº®ø¯Ó¡C
define("enter",chr(13).chr(10));
class DATA_XML //ÃöÁä¡I¡I¡I¤@Ó¦Û©w¸qÃþ
{
var $parser; //XML¸ÑÄÀ¾¹
var $tags; //XML¼Ðñ
var $on; //
var $root; // ®Ú¤¸¯À
var $Data = array(); // ¤¸¯À¼Æ²Õ
function DATA_XML($filename,$root) //Ãþªì©l¨ç¼Æ filename¤å¥ó¦W,root®Ú¤¸¯À
{
$this->root = $root; // ªì©l®Ú¤¸¯À
$this->parser = xml_parser_create();//³Ð«Ø¸ÑÄÀ¹ï¶H
xml_set_object(&$this->parser,&$this);//³]¸m¹ï¶H
xml_set_element_handler($this->parser,"tag_on","tag_off");//³]¸m¤¸¯ÀºÞ²z¨ç¼Æ
xml_set_character_data_handler($this->parser,"getdata"); //³]¸m¼Æ¾ÚºÞ²z¨Æ¥ó
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);€€€€//n¨DÄY®æ°Ï¤À¤j¤p¼g
if( file_exists($filename) ) //§ä¨ì¤å¥ó¶Ü¡H
{//§ä¨ì
$fp = fopen($filename,"r"); // ¥uŪ¥´¶}
$c€€€€= fread($fp,filesize($filename)); //Ū¨ú¼Æ¾Ú
fclose($fp);//Ãö³¬
$this->parse($c); //³]¸m¸ÑÄÀ¹ï¶H
}
else
{
echo "ooooo"; //¡I¡H¡I¦n¶H¬O½Õ¸Õ®É¥Îªº¡A¥h±¼ else¦n¤F
}
}
function parse($data)//¸ÑÄÀ¨ç¼Æ
{
xml_parse($this->parser,$data);
}
function tag_on($parser,$tag,$attributes)//µo²{¤¸¯ÀIJµo¨ç¼Æ
{
$this->on = true; // ¤w¸gIJµo¹L
$this->tags = $tag;
//echo $tag;
}
function tag_off($parser,$tag) //¤¸¯Àµ²¯À¨ç¼Æ
{
$this->on = false; // ¤¸¯Àµ²¯À
}
function getdata($parser,$cdata) //¨ú¥X¤¸¯À
{
if($this->on && $this->tags!=$this->root)
{//ÅçÃÒ¤@¤U¤ñ¸û¦n¡A¡]²{¦b¬O§_¬°¤¸¯Àªº¶}©l¡A¨Ã¥B¤£¬O®Ú¤¸¯À¡H¡^
$this->Data[$this->tags]=trim($cdata);
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€// ÃöÁä°Ú¡I¡I¥Î¼Ðñ°µ¼Æ²Õªí¡A¨Ãµ¹³oӼƲդ¸¯À¥I¤W¼Æ¾Ú
//echo trim($cdata);
//echo $this->tags;
//echo "
";
}
}
function check($str)
{//Àˬd¦r²Å
if( strlen($str)<1 )//¦pªG¬OªÅ¦r²Å
return ;//ªð¦^
else
return $str;//§_«hì¸ôªð¦^¡]¤£µMXML¦n¶H·|¤£°µµ²§ô¼Ð°O¡^
}
function saveas($filename)//¥t¦s¬°
{
$c=<?xml version="1.0" encoding="gb2312"?>.enter;
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€//³oÓ¤£¥Î»¡¤F§a¡Aenter¬Odefine("enter",chr(13).chr(10));
$c.="<".$this->root.">".enter;
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€//º¥ý³]©w¤@¤U®Ú¤¸¯À
for( reset($this->Data);$i=key($this->Data);next($this->Data))
{//¶}©lÁ|¥X©Ò¦³¼Æ¾Ú°Õ
$c.= "<".$i.">".$this->check($this->Data[$i])."</".$i.">".enter;
// ¥Î¼Æ²Õªí¦W°µ¤¸¯À¼Ðñ¡A¨Ã¥[¤W¼Æ¾Ú¤º®e
}
//echo $c;
$c.="</".$this->root.">".enter;//µ²§ô¼Ðñ
$fp = fopen( $filename , "w" );//¼g¤J¤å¥ó
fwrite($fp,$c);
fclose($fp);
}
};
/*·sÁä¤@ÓXML¤å¥ó
€€€€€€€€€€€€€€€€€€€€€€$xml = new DATA_XML(¸ô®|."arm.xml","DATA"/*®Ú¤¸¯À*/);
$xml->Data["UserName"]="Ãö¦Ð";
€€€€€€€€€€€€€€€€€€€€€€$xml->Data["Nick"]="Ãö¶³ªø";
$xml->saveas( ¸ô®|."arm.xml");
€€€€€€€€€€€€€€€€€€€€€€unset( $xml );
€€€€€€€€€€€€€€€€€€€€€€// Ū¨ú¤@Ó¤å¥ó
€€€€€€€€€€€€€€€€€€€€€€$xml = new DATA_XML(¸ô®|."arm.xml","DATA");
€€€€€€€€€€€€€€€€€€€€€€echo $xml->Data["Nick"];//Åã¥Ü¤@¤U¡H
€€€€€€€€€€€€€€€€€€€€€€$xml->Data["Nick"]="Ãö¦Ñ·Ý";//UPDATE
€€€€€€€€€€€€€€€€€€€€€€$xml->Data["Master"]="¼B³Æ";//INSERT INTO
€€€€€€€€€€€€€€€€€€€€€€$xml->saveas(¸ô®|."arm.xml");//¥t¦s¬°Âл\¥»¨
*/
?>€€