178 lines
4.5 KiB
PHP
178 lines
4.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Safe;
|
||
|
|
||
|
use Safe\Exceptions\ApacheException;
|
||
|
|
||
|
/**
|
||
|
* Fetch the Apache version.
|
||
|
*
|
||
|
* @return string Returns the Apache version on success.
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function apache_get_version(): string
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \apache_get_version();
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
return $result;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Retrieve an Apache environment variable specified by
|
||
|
* variable.
|
||
|
*
|
||
|
* This function requires Apache 2 otherwise it's undefined.
|
||
|
*
|
||
|
* @param string $variable The Apache environment variable
|
||
|
* @param bool $walk_to_top Whether to get the top-level variable available to all Apache layers.
|
||
|
* @return string The value of the Apache environment variable on success
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function apache_getenv(string $variable, bool $walk_to_top = false): string
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \apache_getenv($variable, $walk_to_top);
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
return $result;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Fetches all HTTP request headers from the current request. Works in the
|
||
|
* Apache, FastCGI, CLI, FPM and NSAPI server module
|
||
|
* in Netscape/iPlanet/SunONE webservers.
|
||
|
*
|
||
|
* @return array An associative array of all the HTTP headers in the current request.
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function apache_request_headers(): array
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \apache_request_headers();
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
return $result;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* apache_reset_timeout resets the Apache write timer,
|
||
|
* which defaults to 300 seconds. With set_time_limit(0);
|
||
|
* ignore_user_abort(true) and periodic
|
||
|
* apache_reset_timeout calls, Apache can theoretically
|
||
|
* run forever.
|
||
|
*
|
||
|
* This function requires Apache 1.
|
||
|
*
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function apache_reset_timeout(): void
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \apache_reset_timeout();
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Fetch all HTTP response headers. Works in the
|
||
|
* Apache, FastCGI, CLI, FPM and NSAPI server module
|
||
|
* in Netscape/iPlanet/SunONE webservers.
|
||
|
*
|
||
|
* @return array An array of all Apache response headers on success.
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function apache_response_headers(): array
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \apache_response_headers();
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
return $result;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* apache_setenv sets the value of the Apache
|
||
|
* environment variable specified by
|
||
|
* variable.
|
||
|
*
|
||
|
* @param string $variable The environment variable that's being set.
|
||
|
* @param string $value The new variable value.
|
||
|
* @param bool $walk_to_top Whether to set the top-level variable available to all Apache layers.
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function apache_setenv(string $variable, string $value, bool $walk_to_top = false): void
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \apache_setenv($variable, $value, $walk_to_top);
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Fetches all HTTP headers from the current request.
|
||
|
*
|
||
|
* This function is an alias for apache_request_headers.
|
||
|
* Please read the apache_request_headers
|
||
|
* documentation for more information on how this function works.
|
||
|
*
|
||
|
* @return array An associative array of all the HTTP headers in the current request.
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function getallheaders(): array
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \getallheaders();
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
return $result;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* virtual is an Apache-specific function which
|
||
|
* is similar to <!--#include virtual...--> in
|
||
|
* mod_include.
|
||
|
* It performs an Apache sub-request. It is useful for including
|
||
|
* CGI scripts or .shtml files, or anything else that you would
|
||
|
* parse through Apache. Note that for a CGI script, the script
|
||
|
* must generate valid CGI headers. At the minimum that means it
|
||
|
* must generate a Content-Type header.
|
||
|
*
|
||
|
* To run the sub-request, all buffers are terminated and flushed to the
|
||
|
* browser, pending headers are sent too.
|
||
|
*
|
||
|
* @param string $filename The file that the virtual command will be performed on.
|
||
|
* @throws ApacheException
|
||
|
*
|
||
|
*/
|
||
|
function virtual(string $filename): void
|
||
|
{
|
||
|
error_clear_last();
|
||
|
$result = \virtual($filename);
|
||
|
if ($result === false) {
|
||
|
throw ApacheException::createFromPhpError();
|
||
|
}
|
||
|
}
|