94 lines
1.7 KiB
PHP
94 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Miniflux\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') ?: '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 'Unknown';
|
|
}
|