Obtener un valor del array $_SERVER con filter_input

Código PHP

PHP – Server – $_SERVER, filter_input, filter_var

Función que devuelve un valor determinado de la variable superglobal $_SERVER.

Para acceder a la variable $_SERVER es mejor utilizar la función filter_input y filter_var y no acceder directamente a esta variable superglobal. Además estas funciones nos garantizan un contenido libre de errores.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* Class HelperServer
*/
abstract class HelperServer
{
/**
* Devuelve el valor de una variable del
* array superglobal $_SERVER
* NOTA: filter_input para las opciones INPUT_SERVER
y INPUT_ENV no funcionan para FASTCGI
* Si la variable no existe, devuelve null
*
* @param string $key
*
* @return string
*/
public static function getValue($key) : string
{
if (filter_has_var(INPUT_SERVER, $key)) {
$value = filter_input(INPUT_SERVER,
$key,
FILTER_SANITIZE_STRING);
} else {
$value = '';
if (array_key_exists($key, $_SERVER)) {
$value = filter_var( $_SERVER[ $key ],
FILTER_SANITIZE_STRING,
null);
}
return $value;
}
if ($value === false || is_null($value)) {
return null;
}
return $value;
}
}
/** * Class HelperServer */ abstract class HelperServer { /** * Devuelve el valor de una variable del * array superglobal $_SERVER * NOTA: filter_input para las opciones INPUT_SERVER y INPUT_ENV no funcionan para FASTCGI * Si la variable no existe, devuelve null * * @param string $key * * @return string */ public static function getValue($key) : string { if (filter_has_var(INPUT_SERVER, $key)) { $value = filter_input(INPUT_SERVER, $key, FILTER_SANITIZE_STRING); } else { $value = ''; if (array_key_exists($key, $_SERVER)) { $value = filter_var( $_SERVER[ $key ], FILTER_SANITIZE_STRING, null); } return $value; } if ($value === false || is_null($value)) { return null; } return $value; } }
/**
 * Class HelperServer
 */
abstract class HelperServer
{

    /**
     * Devuelve el valor de una variable del 
     * array superglobal $_SERVER
     * NOTA: filter_input para las opciones INPUT_SERVER 
             y INPUT_ENV no funcionan para FASTCGI
     * Si la variable no existe, devuelve null
     *
     * @param string $key
     *
     * @return string
     */
    public static function getValue($key) : string
    {
        if (filter_has_var(INPUT_SERVER, $key)) {

            $value = filter_input(INPUT_SERVER, 
                                  $key, 
                                  FILTER_SANITIZE_STRING);

        } else {

            $value = '';
            if (array_key_exists($key, $_SERVER)) {
                $value = filter_var( $_SERVER[ $key ],
                                     FILTER_SANITIZE_STRING, 
                                     null);
            }
            return $value;
        }
        if ($value === false || is_null($value)) {
            return null;

        }
        return $value;
    }

}

Ejemplo

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$user_agent = HelperServer::getValue('HTTP_USER_AGENT');
print_r($user_agent);
$user_agent = HelperServer::getValue('HTTP_USER_AGENT'); print_r($user_agent);
$user_agent = HelperServer::getValue('HTTP_USER_AGENT');
print_r($user_agent);