PHP中用XML作配置文件(config.xml)

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

本文实现PHP解析config.xml配置文件,从中读取连接数据库所需的信息

config.xml

-------------------------------------------

<?xml version="1.0"?>

<configs>

<database>

<host>192.168.0.1</host>

<dbname>dbname</dbname>

<username>postgres</username>

<password>123456</password>

</database>

</configs>

解析文件parse.php

-------------------------------------------

<?php

class AminoAcid {

function AminoAcid ($aa) {

foreach ($aa as $k=>$v)

$this->$k = $aa[$k];

}

}

function readDatabase($filename) {

// read the xml database of aminoacids

$data = implode("",file($filename));

$parser = xml_parser_create();

xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);

xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);

xml_parse_into_struct($parser,$data,$values,$tags);

xml_parser_free($parser);

// loop through the structures

foreach ($tags as $key=>$val) {

if ($key == "database") {

$molranges = $val;

// each contiguous pair of array entries are the

// lower and upper range for each molecule definition

for ($i=0; $i < count($molranges); $i+=2) {

$offset = $molranges[$i] + 1;

$len = $molranges[$i + 1] - $offset;

$tdb[] = parseMol(array_slice($values, $offset, $len));

}

} else {

continue;

}

}

return $tdb;

}

function parseMol($mvalues) {

for ($i=0; $i < count($mvalues); $i++)

$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];

return new AminoAcid($mol);

//Return $mol;

}

$db = readDatabase("config.xml");

/*

echo("<pre>");

print_r($db);

echo("</pre>");

*/

foreach($db as $key=>$val)

{

echo($val->host);

}

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航