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.

/**
 * 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

$user_agent = HelperServer::getValue('HTTP_USER_AGENT');
print_r($user_agent);