miniflux-legacy/lib/Request.php

104 lines
1.7 KiB
PHP

<?php
namespace Request;
function get_server_variable($variable)
{
return isset($_SERVER[$variable]) ? $_SERVER[$variable] : '';
}
function param($name, $default_value = null)
{
return isset($_GET[$name]) ? $_GET[$name] : $default_value;
}
function int_param($name, $default_value = 0)
{
return isset($_GET[$name]) && ctype_digit($_GET[$name]) ? (int) $_GET[$name] : $default_value;
}
function value($name)
{
$values = values();
return isset($values[$name]) ? $values[$name] : null;
}
function values()
{
if (! empty($_POST)) {
return $_POST;
}
$result = json_decode(body(), true);
if ($result) {
return $result;
}
return array();
}
function body()
{
return file_get_contents('php://input');
}
function file_content($field)
{
if (isset($_FILES[$field])) {
return file_get_contents($_FILES[$field]['tmp_name']);
}
return '';
}
function uri()
{
return $_SERVER['REQUEST_URI'];
}
function is_post()
{
return $_SERVER['REQUEST_METHOD'] === 'POST';
}
function get_user_agent()
{
return get_server_variable('HTTP_USER_AGENT') ?: t('Unknown');
}
function get_ip_address()
{
$keys = array(
'HTTP_X_REAL_IP',
'HTTP_CLIENT_IP',
'HTTP_X_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_X_CLUSTER_CLIENT_IP',
'HTTP_FORWARDED_FOR',
'HTTP_FORWARDED',
'REMOTE_ADDR'
);
foreach ($keys as $key) {
$value = get_server_variable($key);
if ($value !== '') {
foreach (explode(',', $value) as $ip_address) {
return trim($ip_address);
}
}
}
return t('Unknown');
}