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();
 | 
						|
    }
 | 
						|
}
 |