note 63626 deleted from function.parse-ini-file by nlopess
| From: | nlopess@php.net | Date: | Sun, 26 Mar 2006 19:01:51 +0000 |
| Subject: | note 63626 deleted from function.parse-ini-file by nlopess | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-106648@lists.php.net to get a copy of this message | ||
Note Submitter: trukin at gmail dot com
----
Creating my website, which i dont get to finish yet! i created these ini parsing functions to be
able to save data easier into files:
<?
function iniParser_Reset(){
global $iniParser;
$iniParser = array();
}
function iniParser_SetFile($file){
global $iniParser;
$iniParser[file] = $file;
}
function iniParser_Error($err){
global $iniParser;
$iniParser[error] = $err;
}
function iniParser_OpenFile(){
global $iniParser;
$iniParser[sections] = array();
$file = $iniParser[file];
if(!$file){
$iniParser[ok] = false;
iniParser_Error("No File");
}elseif(!@file_exists($file)){
iniParser_Error("$file no existe");
$iniParser[ok] = false;
}else{
$data = @file($file);
$data = iniParser_TrimArray($data);
$iniParser[data] = $data;
$iniParser[ok] = true;
$sec = false;
foreach($data as $line=>$value){
if($value{0}=="["){
$sec = str_Replace(array("[", "]"), "", $value);
}else{
list($n, $val) = explode("=", $value);
$val = eregi_replace("^".$n."=", "", $value);
$iniParser[sections][$sec][$n] = $val;
}
}
return $iniParser[sections];
}
}
function iniParser_TrimArray($data){
if(is_Array($data)){
foreach($data as $line=>$value){
$value = trim($value);
if($value){
$data[$line] = $value;
}else{
unset($data[$line]);
}
}
return $data;
}else
return false;
}
function iniParser_GetErr(){
global $iniParser;
return $iniParser[error];
}
function iniParser_SetValue($secname, $name, $value){
global $iniParser;
$name = trim($name);
$secname = trim(strtolower($secname));
if($iniParser[ok]==false){
iniParser_Error('no ok');
}Else{
$iniParser[sections][$secname][$name]=$value;
}
}
function iniParser_SaveIni(){
global $iniParser;
$file = $iniParser[file];
if(!$iniParser[ok]){
iniParser_Error("no ok");
return false;
}
if(file_exists($file)){
foreach($iniParser[sections] as $name=>$vals){
$name = "[".$name."]";
$filed[] = $name;
foreach($vals as $na=>$va){
$filed[] = $na."=".trim($va);
}
}
$filedata = @implode("\n", $filed);
$handler = fopen($file, 'w');
fwrite($handler, $filedata);
fclose($handler);
}
$iniParser = array();
}
function iniParser_remove($secname, $name){
global $iniParser;
$name = trim($name);
$secname = trim(strtolower($secname));
if($iniParser[ok]==false){
iniParser_Error('no ok');
}Else{
unset($iniParser[sections][$secname][$name]);
}
}
////Example:
iniParser_SetFile('some.ini');
$data = iniParser_openfile();
if($_GET[ac]=='edit'){
iniParser_SetValue('SomeSection', 'create_this_even_if_this_doesnt_exist',
'somedata');
}elseif($_GET[ac]=='delete'){
iniParser_remove('SomeSection', 'SomeName');
}
$err =iniParser_GetErr();
if($err) die($err);
iniParser_SaveIni(); // Save the ini
?>
if cant explain it by looking at code, this which i wrote to not forget how it works my help you
// INFO ::
// set iniParser_setfilE(file)
// array = iniParser_openfile();
// (optional) iniparser_setvalue(section, name, value)
// iniParse_saveini();