note 63626 added to function.parse-ini-file
| From: | trukin at gmail dot com | Date: | Sun, 26 Mar 2006 03:30:04 +0000 |
| Subject: | note 63626 added to function.parse-ini-file | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-106618@lists.php.net to get a copy of this message | ||
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();
----
Server IP: 64.71.164.2
Probable Submitter: 68.227.126.7
----
X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER
autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/function.parse-ini-file.php
Edit -- http://master.php.net/note/edit/63626
Del: integrated -- http://master.php.net/note/delete/63626/integrated
Del: useless -- http://master.php.net/note/delete/63626/useless
Del: bad code -- http://master.php.net/note/delete/63626/bad+code
Del: spam -- http://master.php.net/note/delete/63626/spam
Del: non-english -- http://master.php.net/note/delete/63626/non-english
Del: in docs -- http://master.php.net/note/delete/63626/in+docs
Del: other reasons-- http://master.php.net/note/delete/63626
Reject -- http://master.php.net/note/reject/63626
Search -- http://master.php.net/manage/user-notes.php