You are here

protected function Server::get_variable in Anti Spam by CleanTalk 9.1.x

Same name and namespace in other branches
  1. 8.4 src/lib/Cleantalk/Common/Variables/Server.php \Cleantalk\Common\Variables\Server::get_variable()

* Gets given $_SERVER variable and save it to memory * *

Parameters

string $name: * * @return mixed|string

Overrides SuperGlobalVariables::get_variable

File

src/lib/Cleantalk/Common/Variables/Server.php, line 22

Class

Server
Class Server Wrapper to safely get $_SERVER variables

Namespace

Cleantalk\Common\Variables

Code

protected function get_variable($name) {

  // Return from memory. From $this->server
  if (isset(static::$instance->variables[$name])) {
    return static::$instance->variables[$name];
  }
  $name = strtoupper($name);
  if (function_exists('filter_input')) {
    $value = filter_input(INPUT_SERVER, $name);
  }
  if (empty($value)) {
    $value = isset($_SERVER[$name]) ? $_SERVER[$name] : '';
  }

  // Convert to upper case for REQUEST_METHOD
  if (in_array($name, array(
    'REQUEST_METHOD',
  ))) {
    $value = strtoupper($value);
  }

  // Convert to lower case for REQUEST_METHOD
  if (in_array($name, array(
    'HTTPS',
  ))) {
    $value = strtolower($value);
  }

  // Convert HTML chars for HTTP_USER_AGENT, HTTP_USER_AGENT, SERVER_NAME
  if (in_array($name, array(
    'HTTP_USER_AGENT',
    'HTTP_USER_AGENT',
    'SERVER_NAME',
  ))) {
    $value = htmlspecialchars($value);
  }

  // Remember for thurther calls
  static::getInstance()
    ->remember_variable($name, $value);
  return $value;
}