note 53010 deleted from function.parse-ini-file by nlopess

From: Date: Tue, 31 May 2005 09:56:02 +0000
Subject: note 53010 deleted from function.parse-ini-file by nlopess
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-89665@lists.php.net to get a copy of this message
Note Submitter: dawalama at gmail dot com ---- /* Search for a key, value or both in an ini file. You can also have this function return the matched section. Eg call: search_ini_file( <filename>, Array('key'=><some_key>)); search_ini_file( <filename>, Array('value'=><some_value>)); search_ini_file( <filename>, Array('key'=><some_key>, 'value'=><some_value>)); ==================================================== if you want to return a section search_ini_file( <filename>, Array('key'=><some_key>), true); @Dawa Lama */ function search_ini_file ( $filename, $search_param, $return_section = false ) { $search_key = (isset($search_param['key'])?$search_param['key']:false); $search_value = (isset($search_param['value'])?$search_param['value']:false); if ( !($search_key !==false || $search_value !==false) ){ return false; } $retvalue = false; $handle = fopen($filename, 'r'); if ( ($search_key !== false) && ($search_value !== false) ){ $key_found = false; $retvalue['key'] = false; $retvalue['value'] = false; while( !feof($handle) ) { $line = trim(fgets($handle, 4096)); if (preg_match("/^\[$search_key\].*?$/s",$line)){ $key_found = true; $retvalue['key'] = true; continue; } if ($key_found){ if (preg_match("/^\[.*?$/", trim($line))){ break; }else{ if ($return_section){ if ($line != '') { $retvalue[$search_key][] = $line; } } } if (preg_match("/^$search_value\s*?=.*$/", $line)){ $retvalue['value'] = true; break; } } } }elseif ($search_key !== false){ $keyfound = false; while ( !feof($handle) ){ $line = trim(fgets($handle, 4096)); if (preg_match("/^\[$search_key\].*?$/s",$line)){ $retvalue = true; $keyfound = true; if (!$return_section){ break; }else{ continue; } } if ( $keyfound ){ if (preg_match("/^\[.*?$/", trim($line))){ break; }else{ if ($return_section){ if ($line != ''){ $retvalue[$search_key][] = $line; } } } } } }elseif ($search_value !== false){ while ( !feof($handle) ){ $line = trim(fgets($handle, 4096)); if (preg_match("/^$search_value\s*?=.*$/", $line)){ $retvalue = true; if ($return_section){ $retvalue = $line; } break; } } } fclose($handle); return $retvalue; }

« previous php.notes (#89665) next »