get($varname); if ($value === false) { return false; } return trim($value); } /** * Gets configuration option value as a boolean. * Interprets the string value 'off' as false. * * @param string $varname The configuration option name. * @return bool False if configuration option does not exist. * False if configuration option is disabled. * True otherwise. */ public function get_bool($varname) { $value = strtolower($this->get_string($varname)); if (empty($value) || $value == 'off') { return false; } return true; } /** * Gets configuration option value as an integer. * * @param string $varname The configuration option name. * @return bool|int False if configuration option does not exist, * false if configuration option value is not numeric, * the configuration option value (integer) otherwise. */ public function get_int($varname) { $value = $this->get_string($varname); if (!is_numeric($value)) { return false; } return (int) $value; } /** * Gets configuration option value as a float. * * @param string $varname The configuration option name. * @return bool|float False if configuration option does not exist, * false if configuration option value is not numeric, * the configuration option value (float) otherwise. */ public function get_float($varname) { $value = $this->get_string($varname); if (!is_numeric($value)) { return false; } return (float) $value; } /** * Gets configuration option value in bytes. * Converts strings like '128M' to bytes (integer or float). * * @param string $varname The configuration option name. * @return bool|int|float False if configuration option does not exist, * false if configuration option value is not well-formed, * the configuration option value otherwise. */ public function get_bytes($varname) { $value = strtolower($this->get_string($varname)); if ($value === false) { return false; } if (is_numeric($value)) { return $value; } else if (strlen($value) < 2) { return false; } $value_numeric = (int) $value; switch ($value[strlen($value) - 1]) { case 'g': $value_numeric *= 1024; case 'm': $value_numeric *= 1024; case 'k': $value_numeric *= 1024; break; default: // It's not already in bytes (and thus numeric) // and does not carry a unit. return false; } return $value_numeric; } }