note 53013 modified in function.parse-ini-file by danbrown

From: Date: Sun, 23 Jan 2011 17:14:46 +0000
Subject: note 53013 modified in function.parse-ini-file by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-176170@lists.php.net to get a copy of this message
<?php /* * Search_ini_file refined. */ 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 != '') { list($k, $v) = split("=", $line); $retvalue[$search_key][$k] = preg_replace("/;.*$/", "", $v); } } } 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; if (!$return_section){ break; }else{ $retvalue = Array(); $keyfound = true; continue; } } if ( $keyfound ){ if (preg_match("/^\[.*?$/", trim($line))){ break; }else{ if ($return_section){ if ($line != ''){ list($k, $v) = split("=", $line); $retvalue[$search_key][$k] = preg_replace("/;.*$/", "", $v); } } } } } }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 = array(); if ($line != ''){ list($k, $v) = split("=", $line); $retvalue[$k] = preg_replace("/;.*$/", "", $v); } } break; } } } fclose($handle); return $retvalue; } ?> --was-- /* * Search_ini_file refined. */ 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 != '') { list($k, $v) = split("=", $line); $retvalue[$search_key][$k] = preg_replace("/;.*$/", "", $v); } } } 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; if (!$return_section){ break; }else{ $retvalue = Array(); $keyfound = true; continue; } } if ( $keyfound ){ if (preg_match("/^\[.*?$/", trim($line))){ break; }else{ if ($return_section){ if ($line != ''){ list($k, $v) = split("=", $line); $retvalue[$search_key][$k] = preg_replace("/;.*$/", "", $v); } } } } } }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 = array(); if ($line != ''){ list($k, $v) = split("=", $line); $retvalue[$k] = preg_replace("/;.*$/", "", $v); } } break; } } } fclose($handle); return $retvalue; } http://php.net/manual/en/function.parse-ini-file.php

« previous php.notes (#176170) next »