Location: PHPKode > projects > Cronus > cronus-1.2.0rc2/includes/config.inc.php
<?php

// Converts php's crappy xml->php array to something much more usable
function xml2php($file) {
   $xml_parser = xml_parser_create();

   if( !($fp = fopen($file, "r")) ) {
       die("Config error: unable to open config file");
   }
   $data = fread( $fp, filesize($file) );
   fclose($fp);

   xml_parser_set_option( $xml_parser, XML_OPTION_CASE_FOLDING, 0 );
   xml_parse_into_struct( $xml_parser, $data, $vals, $index );
   xml_parser_free( $xml_parser );

   $params = array();
   $level = array();
   foreach( $vals as $xml_elem ) {
      if( $xml_elem['type'] == 'open' ) {
         if( array_key_exists('attributes',$xml_elem) ) {
            list( $level[$xml_elem['level']], $extra ) = array_values( $xml_elem['attributes'] );
         } else {
            $level[$xml_elem['level']] = $xml_elem['tag'];
         }
      }
      if( $xml_elem['type'] == 'complete' ) {
         $start_level = 1;
         $php_stmt = '$params';
         while( $start_level < $xml_elem['level'] ) {
            $php_stmt .= '[$level['.$start_level.']]';
            $start_level++;
         }
         $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
         eval( $php_stmt );
      }
   }

   return $params['xml'];
}

$configFile = "includes/config.xml.inc.php";
$GLOBALS['config'] = xml2php( $configFile );

/* To access config vars, use the $GLOBALS['config'] array */

?>
Return current item: Cronus