Files
decpdf.site/lib/Request.php
2026-01-18 00:53:18 +00:00

113 lines
2.4 KiB
PHP
Executable File

<?php
class Request {
private $type = "";
private $headers = [];
private $referer = "";
private $get = [];
private $post = [];
private $put = [];
private $peer = "";
private $path = "";
private $route = null;
private $files = [];
public function __construct() {
$this->get = $_GET;
$this->post = $_POST;
$this->files = $_FILES;
$this->type = strtoupper($_SERVER['REQUEST_METHOD']);
$this->peer = $_SERVER['REMOTE_ADDR'];
if (array_key_exists("REDIRECT_URL", $_SERVER)) {
$this->path = $_SERVER['REDIRECT_URL'];
} else {
$this->path = "/";
}
if ($this->type == "PUT") {
$data = file_get_contents("php://input");
$arr = [];
parse_str($data, $arr);
foreach ($arr as $k=>$v) {
$this->put[$k] = $v;
}
}
foreach ($_SERVER as $k=>$v) {
if (str_starts_with($k, "HTTP_")) {
$header = substr($k, 5);
$header = strtolower($header);
$header = str_replace("_", " ", $header);
$header = ucwords($header);
$header = str_replace(" ", "-", $header);
$this->headers[$header] = $v;
}
}
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
$this->referer = $_SERVER['HTTP_REFERER'];
} else {
$this->referer = "";
}
}
public function type() {
return $this->type;
}
public function headers() {
return $this->headers;
}
public function header($h) {
if (array_key_exists($h, $this->headers)) {
return $this->headers[$h];
}
return false;
}
public function file($name, $num = false) {
if ($num === false) {
return $this->files[$name];
}
if ($num >= count($this->files[$name]["name"])) {
return false;
}
return [
"name" => $this->files[$name]["name"][$num],
"full_path" => $this->files[$name]["full_path"][$num],
"type" => $this->files[$name]["type"][$num],
"tmp_name" => $this->files[$name]["tmp_name"][$num],
"error" => $this->files[$name]["error"][$num],
"size" => $this->files[$name]["size"][$num],
];
}
public function get($k) {
if (!array_key_exists($k, $this->get)) return false;
return $this->get[$k];
}
public function post($k) {
if (!array_key_exists($k, $this->post)) return false;
return $this->post[$k];
}
public function put($k) {
if (!array_key_exists($k, $this->put)) return false;
return $this->put[$k];
}
public function set_route($r) {
$this->route = $r;
}
public function route() {
return $this->route;
}
public function path() {
return $this->path;
}
}