要用到,在网站上找了一个,然后自己整理成一个类..
<?
php
/*
*PHP获取和设置XML节点,用于修改和读取站点配置文件
*2008-4-3
*LIQUAN
*eg.get config
*$c = new Configuration('config.xml');
*echo( $c->TemplateDirectory." " );
*
* set config
* $c = new Configuration('config.xml');
* $c->TemplateDirectory='test';
* $c->save();
*/
class Configuration
{
private $configFile ;
private $items = array ();
// 构造函数
function __construct( $configFile )
{
$this -> configFile = $configFile ;
$this -> parse();
}
// 获取属性
function __get( $id )
{
return $this -> items[ $id ];
}
// 设置属性
function __set( $key , $value )
{
$this -> $items [ $key ] = $value ;
}
// 解析XML文件保存到数组
function parse()
{
$doc = new DOMDocument();
$doc -> load( $this -> configFile);
$cn = $doc -> getElementsByTagName( ' config ' );
$nodes = $cn -> item( 0 ) -> getElementsByTagName( ' * ' );
foreach ( $nodes as $node )
{
$this -> items[ $node -> nodeName] = $node -> nodeValue;
}
}
// 保存XML文件
function save()
{
$doc = new DOMDocument();
$doc -> formatOutput = true ;
$r = $doc -> createElement( ' config ' );
$doc -> appendChild( $r );
foreach ( $this -> items as $k => $v )
{
$keyName = $doc -> createElement( $k );
$keyName -> appendChild( $doc -> createTextNode( $v ));
$r -> appendChild( $keyName );
}
copy ( $this -> configFile , $this -> configFile . " .bak " );
$doc -> save( $this -> configFile);
}
}
?>
/*
*PHP获取和设置XML节点,用于修改和读取站点配置文件
*2008-4-3
*LIQUAN
*eg.get config
*$c = new Configuration('config.xml');
*echo( $c->TemplateDirectory." " );
*
* set config
* $c = new Configuration('config.xml');
* $c->TemplateDirectory='test';
* $c->save();
*/
class Configuration
{
private $configFile ;
private $items = array ();
// 构造函数
function __construct( $configFile )
{
$this -> configFile = $configFile ;
$this -> parse();
}
// 获取属性
function __get( $id )
{
return $this -> items[ $id ];
}
// 设置属性
function __set( $key , $value )
{
$this -> $items [ $key ] = $value ;
}
// 解析XML文件保存到数组
function parse()
{
$doc = new DOMDocument();
$doc -> load( $this -> configFile);
$cn = $doc -> getElementsByTagName( ' config ' );
$nodes = $cn -> item( 0 ) -> getElementsByTagName( ' * ' );
foreach ( $nodes as $node )
{
$this -> items[ $node -> nodeName] = $node -> nodeValue;
}
}
// 保存XML文件
function save()
{
$doc = new DOMDocument();
$doc -> formatOutput = true ;
$r = $doc -> createElement( ' config ' );
$doc -> appendChild( $r );
foreach ( $this -> items as $k => $v )
{
$keyName = $doc -> createElement( $k );
$keyName -> appendChild( $doc -> createTextNode( $v ));
$r -> appendChild( $keyName );
}
copy ( $this -> configFile , $this -> configFile . " .bak " );
$doc -> save( $this -> configFile);
}
}
?>