<?php
/**
* A sample code showing usage of ConfigEditor class
*
* @package ConfigEditor
* @author Alexandr [Amega] Egorov, amego2006(at)gmail.com
* @version 1.0
*/
define('ROOTDIR', dirname(__FILE__));
define('LIBDIR', ROOTDIR);
define('CONFIG_FILE', ROOTDIR.'/config.php');
define('CE_NEWLINE', "\r\n");
define('CE_WORDWRAP', 20);
require_once(LIBDIR.'/confedit.class.php');
// Creating an instance of ConfigEditor
$config = new ConfigEditor();
if (!file_exists(CONFIG_FILE)) {
//
// We do not have the config file yet. So we
// should create one
//
// Adding a variable
// This will result in:
// // Timeout ...
// $cfg_curl_timeout = 10;
// in the generated config.
// Note: comments may be multiline.
$config->SetVar('cfg_curl_timeout', 10, 'Timeout in cURL operations');
// Values may be more complex, e.g. arrays
// This will result in:
// $cfg_banned_ips = array(0 => '10.10.10.10', 1 => '10.20.30.40');
$config->SetVar('cfg_banned_ips', array('10.10.10.10', '10.20.30.40'), 'Banned IPs');
// As you may have guessed, ConfigEditor uses var_export on
// the values before putting them to config.
// But sotimes it is not desirable. E.g. I want to add a variable:
// $cfg_cachedir = ROOTDIR.'/maincache';
// So, everytime I include the config, $cfg_cachedir should be
// evaluated into 'D:/some/path/maincache';
// To tell ConfigEditor NOT to var_export values, you should
// pass true in the 4th argument, telling that the value is
// in RAW format.
$config->SetVar('cfg_cachedir', "ROOTDIR.'/maincache'", 'ROOTDIR is defined before including config file', true);
// Save generates the config and returns it as a string.
// If fname is passed, it will alse try to save the file
$config_php = $config->Save(CONFIG_FILE);
echo 'Config created in '.CONFIG_FILE."<br />\n";
} else {
// we already have a config
$config->LoadFromFile(CONFIG_FILE);
// Listing all variables found in the config
echo '<table border=1><tr><td>Name</td><td>Value</td><td>RAW value</td><td>Comment</td></tr>';
$vars = $config->GetVarNames();
foreach($vars as $var_name) {
// Note the defference between values for cfg_cachedir
$var = $config->GetVar($var_name);
$varRaw = $config->GetVarRaw($var_name);
echo '<tr><td>'.htmlspecialchars($var[CE_VARNAME]).'</td>';
echo '<td>'.htmlspecialchars(print_r($var[CE_VARVALUE], true)).'</td>';
echo '<td>'.htmlspecialchars(print_r($varRaw[CE_VARVALUE], true)).'</td>';
echo '<td>'.htmlspecialchars($var[CE_VARCOMMENT]).'</td></tr>';
}
echo '</table>';
}
?>
|