This function returns a valid HTTP date regarding RFC 822/1123 looking like: "Wed, 22 Dec 2004 11:34:47 GMT"
This function returns an absolute URI constructed from url. If the url is already abolute but a different proto was supplied, only the proto part of the URI will be updated. If url has no path specified, the path of the current REQUEST_URI will be taken. The host will be taken either from the Host HTTP header of the client the SERVER_NAME or just localhost if prior are not available.
Some examples:
url = "page.php" => http://www.example.com/current/path/page.php url = "/page.php" => http://www.example.com/page.php url = "/page.php", proto = "https" => https://www.example.com/page.php
This function negotiates the clients preferred language based on its Accept-Language HTTP header. It returns the negotiated language or the default language if none match.
The qualifier is recognized and languages without qualifier are rated highest.
The supported parameter is expected to be an array having the supported languages as array values.
Example:
<?php
$langs = array(
'en-US',// default
'fr',
'fr-FR',
'de',
'de-DE',
'de-AT',
'de-CH',
);
include './langs/'. http_negotiate_language($langs) .'.php';
?>
This function negotiates the clients preferred charset based on its Accept-Charset HTTP header. It returns the negotiated charset or the default charset if none match.
The qualifier is recognized and charset without qualifier are rated highest.
The supported parameter is expected to be an array having the supported charsets as array values.
Example:
<?php
$charsets = array(
'iso-8859-1', // default
'iso-8859-2',
'iso-8859-15',
'utf-8'
);
$pref = http_negotiate_charset($charsets);
if (!strcmp($pref, 'iso-8859-1')) {
iconv_set_encoding('internal_encoding', 'iso-8859-1');
iconv_set_encoding('output_encoding', $pref);
ob_start('ob_iconv_handler');
}
?>
Send HTTP status code.
This converts the given timestamp to a valid HTTP date and sends it as "Last-Modified" HTTP header. If timestamp is omitted, current time is sent.
Matches the given timestamp against the clients "If-Modified-Since" resp. "If-Unmodified-Since" HTTP headers.
This matches the given ETag against the clients "If-Match" resp. "If-None-Match" HTTP headers.
If timestamp_or_exires is greater than 0, it is handled as timestamp and will be sent as date of last modification. If it is 0 or omitted, the current time will be sent as Last-Modified date. If it's negative, it is handled as expiration time in seconds, which means that if the requested last modification date is not between the calculated timespan, the Last-Modified header is updated and the actual body will be sent.
This function attempts to cache the HTTP body based on an ETag, either supplied or generated through calculation of the MD5 checksum of the output (uses output buffering).
If clients "If-None-Match" header matches the supplied/calculated ETag, the body is considered cached on the clients side and a "304 Not Modified" status code is issued.
For use with ob_start(). Note that this has to be started as first output buffer. WARNING: Don't use with http_send_*().
Redirect to a given url. The supplied url will be expanded with http_absolute_uri(), the params array will be treated with http_build_query() and the session identification will be appended if session is true.
Depending on permanent the redirection will be issued with a permanent ("301 Moved Permanently") or a temporary ("302 Found") redirection status code.
To be RFC compliant, "Redirecting to URI." will be displayed, if the client doesn't redirect immediatly.
Sends raw data with support for (multiple) range requests.
Sends a file with support for (multiple) range requests.
Sends an already opened stream with support for (multiple) range requests.
Sets the content type.
Set the Content Disposition. The Content-Disposition header is very useful if the data actually sent came from a file or something similar, that should be "saved" by the client/user (i.e. by browsers "Save as..." popup window).
This function decodes a string that was HTTP-chunked encoded. Returns false on failure.
This function splits an HTTP response into an array with headers and the content body. The returned array may look simliar to the following example:
<?php
array(
0 => array(
'Status' => '200 Ok',
'Content-Type' => 'text/plain',
'Content-Language' => 'en-US'
),
1 => "Hello World!\"
);
?>
Performs an HTTP GET request on the supplied url.
The second parameter is expected to be an associative array where the following keys will be recognized:
- redirect: int, whether and how many redirects to follow - unrestrictedauth: bool, whether to continue sending credentials on redirects to a different host - proxyhost: string, proxy host in "host[:port]" format - proxyport: int, use another proxy port as specified in proxyhost - proxyauth: string, proxy credentials in "user:pass" format - proxyauthtype: int, HTTP_AUTH_BASIC and/or HTTP_AUTH_NTLM - httpauth: string, http credentials in "user:pass" format - httpauthtype: int, HTTP_AUTH_BASIC, DIGEST and/or NTLM - compress: bool, whether to allow gzip/deflate content encoding (defaults to true) - port: int, use another port as specified in the url - referer: string, the referer to sends - useragent: string, the user agent to send (defaults to PECL::HTTP/version (PHP/version))) - headers: array, list of custom headers as associative array like array("header" => "value") - cookies: array, list of cookies as associative array like array("cookie" => "value") - cookiestore: string, path to a file where cookies are/will be stored
The optional third parameter will be filled with some additional information in form af an associative array, if supplied, like the following example:
<?php
array (
'effective_url' => 'http://localhost',
'response_code' => 403,
'total_time' => 0.017,
'namelookup_time' => 0.013,
'connect_time' => 0.014,
'pretransfer_time' => 0.014,
'size_upload' => 0,
'size_download' => 202,
'speed_download' => 11882,
'speed_upload' => 0,
'header_size' => 145,
'request_size' => 62,
'ssl_verifyresult' => 0,
'filetime' => -1,
'content_length_download' => 202,
'content_length_upload' => 0,
'starttransfer_time' => 0.017,
'content_type' => 'text/html; charset=iso-8859-1',
'redirect_time' => 0,
'redirect_count' => 0,
'private' => '',
'http_connectcode' => 0,
'httpauth_avail' => 0,
'proxyauth_avail' => 0,
)
?>
Performs an HTTP HEAD request on the suppied url. Returns the HTTP response as string. See http_get() for a full list of available options.
Performs an HTTP POST request, posting data. Returns the HTTP response as string. See http_get() for a full list of available options.
Performs an HTTP POST request, posting www-form-urlencoded array data. Returns the HTTP response as string. See http_get() for a full list of available options.
Example:
<?php
if (!http_auth_basic('mike', 's3c|r3t')) {
die('<h1>Authorization failed!</h1>');
}
?>
Example:
<?php
function auth_cb($user, $pass)
{
global $db;
$query = 'SELECT pass FROM users WHERE user='. $db->quoteSmart($user);
if (strlen($realpass = $db->getOne($query)) {
return $pass === $realpass;
}
return false;
}
if (!http_auth_basic_cb('auth_cb')) {
die('<h1>Authorization failed</h1>');
}
?>
Generated at: Thu, 17 Feb 2005 22:42:18 +0100