function loadFromFile() { $configname = new StringBuffer(); $buffers = new StringBuffer(); $conf = NULL; $key = ''; $value = ''; $skipline = 0; $c = ''; if ($this->reader->ready()) { while (($c = $this->reader->read()) != '') { if ($c == CONFIG_END_KEY) { if (isset($conf) && $buffers->length() > 0) { $buffers = $buffers->trimAll(); if (!$buffers->startsWith(CONFIG_COMMENT)) { $key_separator_pos = $buffers->indexOf('='); if ($buffers->startsWith(MULTICONFIG_START) && $buffers->endsWith(MULTICONFIG_END)) { if ($conf->size() > 0) { $this->put($configname->toString(), $conf); } $i = $buffers->indexOf(':') + 1; $configname = $buffers->substring($i, $buffers->length() - 1); $conf = new Hashtable(); } else { if ($key_separator_pos > 0) { $key = $buffers->substring(0, $key_separator_pos); $key = $key->trimAll(); $value = $buffers->substring($key_separator_pos + 1); $value = $value->trimAll(); if ($key->length() > 0 && $value->length() > 0) { $str = $conf->get($key->toString()) . $value->toString(); $conf->put($key->toString(), $str); } } } } } else { $buffers = $buffers->trimAll(); if ($buffers->startsWith(MULTICONFIG_START) && $buffers->endsWith(MULTICONFIG_END)) { $i = $buffers->indexOf(':') + 1; $configname = $buffers->substring($i, $buffers->length() - 1); $conf = new Hashtable(); } } $buffers = new StringBuffer(); } else { $buffers->append($c); } } if ($buffers->length() > 0) { $key_separator_pos = $buffers->indexOf('='); if ($key_separator_pos > 0) { $key = $buffers->substring(0, $key_separator_pos); $key = $key->trimAll(); $value = $buffers->substring($key_separator_pos + 1); $value = $value->trimAll(); if ($key->length() > 0 && $value->length() > 0) { $conf->put($key->toString(), $value->toString()); } } } if (isset($conf) && $conf->size() > 0) { $this->put($configname, $conf); } } }