X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=docs%2Ffunctions.html;h=dc97a616933126b6666cec23b503dc9e568c6173;hp=41cf9063697a5510be706e250699b6e2e707a12f;hb=0f08208cc1b223ccb90554718181d553156997f4;hpb=336ab37eb6fa1e0e91857d65fae0e747b4ad481c diff --git a/docs/functions.html b/docs/functions.html index 41cf906..dc97a61 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -30,6 +30,9 @@ width: auto; float: left; } + p, pre { + clear: both; + } p br, pre code br { display: block; } @@ -39,7 +42,7 @@

string http_date([int timestamp])

This function returns a valid HTTP date regarding RFC 822/1123
looking like: "Wed, 22 Dec 2004 11:34:47 GMT"

-

string http_absolute_uri(string url[, string proto])

+

string http_absolute_uri(string url[, string proto[, string host[, int port]]])

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
@@ -61,9 +64,9 @@ The qualifier is recognized and languages without qualifier are rated highest. 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';
?>
-

+Example:


+<?php
$langs
= array(
        
'en-US',// default
        
'fr',
        
'fr-FR',
        
'de',
        
'de-DE',
        
'de-AT',
        
'de-CH',
);
include
'./langs/'. http_negotiate_language($langs) .'.php';
?>
+



@@ -77,9 +80,9 @@ The qualifier is recognized and charset without qualifier are rated highest.
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');
}
?>
-

+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');
}
?>
+



@@ -143,9 +146,9 @@ if the client doesn't redirect immediatly.

Returns false on failure.

array http_split_response(string http_response)

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!"
);
?>
-

+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!"
);
?>
+



@@ -184,9 +187,9 @@ array where the following keys will be recognized:

 - redirect:
  - lastmodified:     int, timestamp for If-(Un)Modified-Since header
- timeout: int, seconds the request may take
- connecttimeout: int, seconds the connect may take

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,
)
?>
-

+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,
)
?>
+



@@ -203,16 +206,16 @@ See http_get() for a full list of available options.

Returns the HTTP response as string.
See http_get() for a full list of available options.

bool http_auth_basic(string user, string pass[, string realm = "Restricted"])

-

Example:


-<?php
if (!http_auth_basic('mike', 's3c|r3t')) {
    die(
'<h1>Authorization failed!</h1>');
}
?>
-

+

Example:


+<?php
if (!http_auth_basic('mike', 's3c|r3t')) {
    die(
'<h1>Authorization failed!</h1>');
}
?>
+



bool http_auth_basic_cb(mixed callback[, string realm = "Restricted"])

-

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>');
}
?>
-

+

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>');
}
?>
+



@@ -220,97 +223,157 @@ See http_get() for a full list of available options.

Generates a form-encoded query string from an associative array or object.


http_methods.c

-

void HTTPi_Response::__construct(bool cache, bool gzip)

-

-

bool HTTPi_Response::setCache(bool cache)

-

-

bool HTTPi_Response::getCache()

-

-

bool HTTPi_Response::setGzip(bool gzip)

-

-

bool HTTPi_Response::getGzip()

-

-

bool HTTPi_Response::setCacheControl(string control[, bool raw = false])

-

-

string HTTPi_Response::getCacheControl()

-

-

bool HTTPi::setContentType(string content_type)

-

-

string HTTPi_Response::getContentType()

-

-

bool HTTPi_Response::setContentDisposition(string filename[, bool inline = false])

-

-

array HTTPi_Response::getContentDisposition()

-

-

bool HTTPi_Response::setETag(string etag)

-

-

string HTTPi_Response::getETag()

-

-

bool HTTPi_Response::setData(string data)

-

-

string HTTPi_Response::getData()

-

-

bool HTTPi_Response::setStream(resource stream)

-

-

resource HTTPi_Response::getStream()

-

-

bool HTTPi_Response::setFile(string file)

-

-

string HTTPi_Response::getFile()

-

-

void HTTPi_Request::__construct([string url[, long request_method = HTTP_GET]])

-

-

void HTTPi_Request::__destruct()

-

-

bool HTTPi_Request::setOptions(array options)

-

-

array HTTPi_Request::getOptions()

-

-

bool HTTPi_Request::setURL(string url)

-

-

string HTTPi_Request::getUrl()

-

-

bool HTTPi_Request::setMethod(long request_method)

-

-

long HTTPi_Request::getMethod()

-

-

bool HTTPi_Request::setContentType(string content_type)

-

-

string HTTPi_Request::getContentType()

-

-

bool HTTPi_Request::setQueryData(mixed query_data)

-

-

string HTTPi_Request::getQueryData()

-

-

bool HTTPi_Request::addQueryData(array query_params)

-

-

void HTTPi_Request::unsetQueryData()

-

-

bool HTTPi_Request::addPostData(array post_data)

-

-

bool HTTPi_Request::setPostData(array post_data)

-

-

array HTTPi_Request::getPostData()

-

-

void HTTPi_Request::unsetPostData()

-

-

bool HTTPi_Request::addPostFile(string name, string file[, string content_type = "application/x-octetstream"])

-

-

array HTTPi_Request::getPostFiles()

-

-

void HTTPi_Request::unsetPostFiles()

-

-

array HTTPi_Request::getResponseData()

-

-

array HTTPi_Request::getResponseHeaders()

-

-

string HTTPi_Request::getResponseBody()

-

-

array HTTPi_Request::getResponseInfo()

-

-

bool HTTPi_Request::send()

-

+

void HttpResponse::__construct(bool cache, bool gzip)

+

Instantiates a new HttpResponse object, which can be used to send
+any data/resource/file to an HTTP client with caching and multiple
+ranges/resuming support.
+
+NOTE: GZIPping is not implemented yet.

+

bool HttpResponse::setCache(bool cache)

+

Whether it sould be attempted to cache the entitity.
+This will result in necessary caching headers and checks of clients
+"If-Modified-Since" and "If-None-Match" headers. If one of those headers
+matches a "304 Not Modified" status code will be issued.
+
+NOTE: If you're using sessions, be shure that you set session.cache_limiter
+to something more appropriate than "no-cache"!

+

bool HttpResponse::getCache()

+

Get current caching setting.

+

bool HttpResponse::setGzip(bool gzip)

+

Enable on-thy-fly gzipping of the sent entity. NOT IMPLEMENTED YET.

+

bool HttpResponse::getGzip()

+

Get current gzipping setting.

+

bool HttpResponse::setCacheControl(string control[, bool raw = false])

+

Set a custom cache-control header, usually being "private" or "public"; if
+$raw is set to true the header will be sent as-is.

+

string HttpResponse::getCacheControl()

+

Get current Cache-Control header setting.

+

bool HttpResponse::setContentType(string content_type)

+

Set the content-type of the sent entity.

+

string HttpResponse::getContentType()

+

Get current Content-Type header setting.

+

bool HttpResponse::setContentDisposition(string filename[, bool inline = false])

+

Set the Content-Disposition of the sent entity. This setting aims to suggest
+the receiveing user agent how to handle the sent entity; usually the client
+will show the user a "Save As..." popup.

+

array HttpResponse::getContentDisposition()

+

Get current Content-Disposition setting.
+Will return an associative array like:

array(
+ 'filename' => 'foo.bar',
+ 'inline' => false
+)
+

+

bool HttpResponse::setETag(string etag)

+

Set a custom ETag. Use this only if you know what you're doing.

+

string HttpResponse::getETag()

+

Get the previously set custom ETag.

+

bool HttpResponse::setData(string data)

+

Set the data to be sent.

+

string HttpResponse::getData()

+

Get the previously set data to be sent.

+

bool HttpResponse::setStream(resource stream)

+

Set the resource to be sent.

+

resource HttpResponse::getStream()

+

Get the previously set resource to be sent.

+

bool HttpResponse::setFile(string file)

+

Set the file to be sent.

+

string HttpResponse::getFile()

+

Get the previously set file to be sent.

+

bool HttpResponse::send()

+

Finally send the entity.
+
+Example:


+<?php
$r
= new HttpResponse(true);
$r->setFile('../hidden/contract.pdf');
$r->setContentType('application/pdf');
$r->send();
?>
+

+

+
+

+

void HttpRequest::__construct([string url[, long request_method = HTTP_GET]])

+

Instantiate a new HttpRequest object which can be used to issue HEAD, GET
+and POST (including posting files) HTTP requests.

+

void HttpRequest::__destruct()

+

Destroys the HttpRequest object.

+

bool HttpRequest::setOptions(array options)

+

Set the request options to use. See http_get() for a full list of available options.

+

array HttpRequest::getOptions()

+

Get current set options.

+

void HttpRequest::unsetOptions()

+

Unset all options/headers/cookies.

+

bool HttpRequest::addHeader(array header)

+

Add (a) request header name/value pair(s).

+

bool HttpRequest::addCookie(array cookie)

+

Add (a) cookie(s).

+

bool HttpRequest::setURL(string url)

+

Set the request URL.

+

string HttpRequest::getUrl()

+

Get the previously set request URL.

+

bool HttpRequest::setMethod(long request_method)

+

Set the request methods; one of the HTTP_HEAD, HTTP_GET or
+HTTP_POST constants.

+

long HttpRequest::getMethod()

+

Get the previously set request method.

+

bool HttpRequest::setContentType(string content_type)

+

Set the content type the post request should have.
+Use this only if you know what you're doing.

+

string HttpRequest::getContentType()

+

Get the previously content type.

+

bool HttpRequest::setQueryData(mixed query_data)

+

Set the URL query parameters to use.
+Overwrites previously set query parameters.
+Affects any request types.

+

string HttpRequest::getQueryData()

+

Get the current query data in form of an urlencoded query string.

+

bool HttpRequest::addQueryData(array query_params)

+

Add parameters to the query parameter list.
+Affects any request type.

+

void HttpRequest::unsetQueryData()

+

Clean the query parameters.
+Affects any request type.

+

bool HttpRequest::addPostData(array post_data)

+

Adds POST data entries.
+Affects only POST requests.

+

bool HttpRequest::setPostData(array post_data)

+

Set the POST data entries.
+Overwrites previously set POST data.
+Affects only POST requests.

+

array HttpRequest::getPostData()

+

Get previously set POST data.

+

void HttpRequest::unsetPostData()

+

Clean POST data entires.
+Affects only POST requests.

+

bool HttpRequest::addPostFile(string name, string file[, string content_type = "application/x-octetstream"])

+

Add a file to the POST request.
+Affects only POST requests.

+

array HttpRequest::getPostFiles()

+

Get all previously added POST files.

+

void HttpRequest::unsetPostFiles()

+

Unset the POST files list.
+Affects only POST requests.

+

array HttpRequest::getResponseData()

+

Get all response data after the request has been sent.

+

string HttpRequest::getResponseHeader([string name])

+

Get response header(s) after the request has been sent.

+

string HttpRequest::getResponseBody()

+

Get the response body after the request has been sent.

+

int HttpRequest::getResponseCode()

+

Get the response code after the request has been sent.

+

array HttpRequest::getResponseInfo([string name])

+

Get response info after the request has been sent.
+See http_get() for a full list of returned info.

+

bool HttpRequest::send()

+

Send the HTTP request.
+
+GET example:


+<?php
$r
= new HttpRequest('http://example.com/feed.rss', HTTP_GET);
$r->setOptions(array('lastmodified' => filemtime('local.rss')));
$r->addQueryData(array('category' => 3));
if (
$r->send() && $r->getResponseCode() == 200) {
    
file_put_contents('local.rss', $r->getResponseBody());
}
?>
+

+

POST example:


+<?php
$r
= new HttpRequest('http://example.com/form.php', HTTP_POST);
$r->setOptions(array('cookies' => array('lang' => 'de')));
$r->addPostData(array('user' => 'mike', 'pass' => 's3c|r3t'));
$r->addPostFile('image', 'profile.jpg', 'image/jpeg');
if (
$r->send()) {
    echo
$r->getResponseBody();
}
?>
+

+

+
+


-

Generated at: Fri, 4 Mar 2005 14:10:16 +0100

+

Generated at: Tue, 22 Mar 2005 15:41:10 +0100

- \ No newline at end of file + +