芝麻web文件管理V1.00
编辑当前文件:/home/asmplong/www/ancien-site-2019/site/administrator/components/com_akeeba/akeeba/utils/ini.php
=') && (!$rawdata) ) { if( function_exists('parse_ini_file') ) { return parse_ini_file($file, $process_sections); } else { return self::parse_ini_file_php($file, $process_sections); } } else { return self::parse_ini_file_php($file, $process_sections, $rawdata); } } } /** * A PHP based INI file parser. * Thanks to asohn ~at~ aircanopy ~dot~ net for posting this handy function on * the parse_ini_file page on http://gr.php.net/parse_ini_file * @param string $file Filename to process * @param bool $process_sections True to also process INI sections * @param bool $rawdata If true, the $file contains raw INI data, not a filename * @return array An associative array of sections, keys and values */ static function parse_ini_file_php($file, $process_sections = false, $rawdata = false) { $process_sections = ($process_sections !== true) ? false : true; if(!$rawdata) { $ini = file($file); } else { $file = str_replace("\r","",$file); $ini = explode("\n", $file); } if (count($ini) == 0) {return array();} $sections = array(); $values = array(); $result = array(); $globals = array(); $i = 0; foreach ($ini as $line) { $line = trim($line); $line = str_replace("\t", " ", $line); // Comments if (!preg_match('/^[a-zA-Z0-9[]/', $line)) {continue;} // Sections if ($line{0} == '[') { $tmp = explode(']', $line); $sections[] = trim(substr($tmp[0], 1)); $i++; continue; } // Key-value pair list($key, $value) = explode('=', $line, 2); $key = trim($key); $value = trim($value); if (strstr($value, ";")) { $tmp = explode(';', $value); if (count($tmp) == 2) { if ((($value{0} != '"') && ($value{0} != "'")) || preg_match('/^".*"\s*;/', $value) || preg_match('/^".*;[^"]*$/', $value) || preg_match("/^'.*'\s*;/", $value) || preg_match("/^'.*;[^']*$/", $value) ){ $value = $tmp[0]; } } else { if ($value{0} == '"') { $value = preg_replace('/^"(.*)".*/', '$1', $value); } elseif ($value{0} == "'") { $value = preg_replace("/^'(.*)'.*/", '$1', $value); } else { $value = $tmp[0]; } } } $value = trim($value); $value = trim($value, "'\""); if ($i == 0) { if (substr($line, -1, 2) == '[]') { $globals[$key][] = $value; } else { $globals[$key] = $value; } } else { if (substr($line, -1, 2) == '[]') { $values[$i-1][$key][] = $value; } else { $values[$i-1][$key] = $value; } } } for($j = 0; $j < $i; $j++) { if ($process_sections === true) { if( isset($sections[$j]) && isset($values[$j]) ) $result[$sections[$j]] = $values[$j]; } else { if( isset($values[$j]) ) $result[] = $values[$j]; } } return $result + $globals; } /** * Parses an engine INI file returning two arrays, one with the general information * of that engine and one with its configuration variables' definitions * @param string $inifile Absolute path to engine INI file * @param array $information [out] The engine information hash array * @param array $parameters [out] The parameters hash array * @return bool True if the file was loaded */ public static function parseEngineINI($inifile, &$information, &$parameters) { if(!file_exists($inifile)) return false; $information = array( 'title' => '', 'description' => '' ); $parameters = array(); $inidata = AEUtilINI::parse_ini_file($inifile, true); foreach($inidata as $section => $data) { if(is_array($data)) { if($section == '_information') { // Parse information foreach($data as $key=>$value) { $information[$key] = $value; } } elseif( substr($section,0,1) != '_' ) { // Parse parameters $newparam = array( 'title' => '', 'description' => '', 'type' => 'string', 'default' => '' ); foreach($data as $key=>$value) { $newparam[$key] = $value; } $parameters[$section] = $newparam; } } } return true; } /** * Parses a graphical interface INI file returning two arrays, one with the general * information of that configuration section and one with its configuration variables' * definitions. * @param string $inifile Absolute path to engine INI file * @param array $information [out] The GUI information hash array * @param array $parameters [out] The parameters hash array * @return bool True if the file was loaded */ public static function parseInterfaceINI($inifile, &$information, &$parameters) { if(!file_exists($inifile)) return false; $information = array( 'description' => '' ); $parameters = array(); $inidata = AEUtilINI::parse_ini_file($inifile, true); foreach($inidata as $section => $data) { if(is_array($data)) { if($section == '_group') { // Parse information foreach($data as $key=>$value) { $information[$key] = $value; } } elseif( substr($section,0,1) != '_' ) { // Parse parameters $newparam = array( 'title' => '', 'description' => '', 'type' => 'string', 'default' => '' ); foreach($data as $key=>$value) { $newparam[$key] = $value; } $parameters[$section] = $newparam; } } } return true; } } ?>