X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=docs%2Ffunctions.html;h=a1f90247bd8e14596b98abde42fb5b7a1b11710b;hb=724e5fabfb5ed0ff62c37a857c403db89eb5fb5e;hp=2b0af4c13506ca317e4bd0f982371d64eb4b2e17;hpb=1fd7e6ceece2684e11cf9533e22dfb12a1b80f0e;p=m6w6%2Fext-http diff --git a/docs/functions.html b/docs/functions.html index 2b0af4c..a1f9024 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -1,6 +1,3 @@ -Content-type: text/html -X-Powered-By: PHP/5.0.1 -
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
+
If timestamp_or_expires 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
@@ -122,10 +126,17 @@ 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_*().
For use with ob_start().
+Use with http_send() API.
+
+Example:
+<?php
// ~ 20 kbyte/s
# http_throttle(1, 20000);
# http_throttle(0.5, 10000);
# http_throttle(0.1, 2000);
http_send_file('document.pdf');
?>
+
+
+
+
Redirect to a given url.
The supplied url will be expanded with http_absolute_uri(), the params array will
@@ -150,7 +161,7 @@ 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!"
);
?>
+<?php
array(
0 => array(
'Response Status' => '200 Ok',
'Content-Type' => 'text/plain',
'Content-Language' => 'en-US'
),
1 => "Hello World!"
);
?>
@@ -158,7 +169,9 @@ content body. The returned array may look simliar to the following example:<array http_parse_headers(string header)
array http_get_request_headers(void)
- +Get a list of incoming HTTP headers.
+bool http_match_request_header(string header, string value[, bool match_case = false])
+Match an incoming HTTP header.
string http_get(string url[, array options[, array &info]])
Performs an HTTP GET request on the supplied url.
@@ -189,7 +202,9 @@ array where the following keys will be recognized:- redirect: has no effect, if the size of the requested entity is not known
- lastmodified: int, timestamp for If-(Un)Modified-Since header
- timeout: int, seconds the request may take
- - connecttimeout: int, seconds the connect may takeThe optional third parameter will be filled with some additional information
+ - connecttimeout: int, seconds the connect may take
+ - onprogress: mixed, progress callback
+ - ondebug: mixed, debug callback
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,
)
?>
@@ -204,10 +219,26 @@ 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.string http_post_array(string url, array data[, array options[, array &info]])
+string http_post_fields(string url, array data[, array files[, array options[, array &info]]])
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.string http_put_file(string url, string file[, array options[, array &info]])
+Performs an HTTP PUT request, uploading file.
+
+Returns the HTTP response as string.
+See http_get() for a full list of available options.string http_put_stream(string url, resource stream[, array options[, array &info]])
+Performs an HTTP PUT request, uploading stream.
+
+Returns the HTTP response as string.
+See http_get() for a full list of available options.long http_request_method_register(string method)
+Register a custom request method.
+bool http_request_method_unregister(mixed method)
+Unregister a previously registered custom request method.
+long http_request_method_exists(mixed method)
+Check if a request method is registered (or available by default).
+string http_request_method_name(long method)
+Get the literal string representation of a standard or registered request method.
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>');
}
?>
@@ -222,17 +253,18 @@ See http_get() for a full list of available options.
string http_build_query(mixed formdata [, string prefix])
+string http_build_query(mixed formdata [, string prefix[, string arg_separator]])
Generates a form-encoded query string from an associative array or object.
http_methods.c
-void HTTPi_Response::__construct(bool cache, bool gzip)
-Instantiates a new HTTPi_Response object, which can be used to send
+HttpResponse
+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 HTTPi_Response::setCache(bool cache)
+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
@@ -240,137 +272,228 @@ 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 HTTPi_Response::getCache()
+bool HttpResponse::getCache()
Get current caching setting.
-bool HTTPi_Response::setGzip(bool gzip)
+bool HttpResponse::setGzip(bool gzip)
Enable on-thy-fly gzipping of the sent entity. NOT IMPLEMENTED YET.
-bool HTTPi_Response::getGzip()
+bool HttpResponse::getGzip()
Get current gzipping setting.
-bool HTTPi_Response::setCacheControl(string control[, bool raw = false])
+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 HTTPi_Response::getCacheControl()
+string HttpResponse::getCacheControl()
Get current Cache-Control header setting.
-bool HTTPi_Response::setContentType(string content_type)
+bool HttpResponse::setContentType(string content_type)
Set the content-type of the sent entity.
-string HTTPi_Response::getContentType()
+string HttpResponse::getContentType()
Get current Content-Type header setting.
-bool HTTPi_Response::setContentDisposition(string filename[, bool inline = false])
+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 HTTPi_Response::getContentDisposition()
+array HttpResponse::getContentDisposition()
Get current Content-Disposition setting.
Will return an associative array like:array(-
'filename' => 'foo.bar',
'inline' => false
)
bool HTTPi_Response::setETag(string etag)
+bool HttpResponse::setETag(string etag)
Set a custom ETag. Use this only if you know what you're doing.
-string HTTPi_Response::getETag()
+string HttpResponse::getETag()
Get the previously set custom ETag.
-bool HTTPi_Response::setData(string data)
+void HttpResponse::setThrottleDelay(double seconds)
+ +double HttpResponse::getThrottleDelay()
+ +void HttpResponse::setSendBuffersize(long bytes)
+ +long HttpResponse::getSendBuffersize()
+ +bool HttpResponse::setData(string data)
Set the data to be sent.
-string HTTPi_Response::getData()
+string HttpResponse::getData()
Get the previously set data to be sent.
-bool HTTPi_Response::setStream(resource stream)
+bool HttpResponse::setStream(resource stream)
Set the resource to be sent.
-resource HTTPi_Response::getStream()
+resource HttpResponse::getStream()
Get the previously set resource to be sent.
-bool HTTPi_Response::setFile(string file)
+bool HttpResponse::setFile(string file)
Set the file to be sent.
-string HTTPi_Response::getFile()
+string HttpResponse::getFile()
Get the previously set file to be sent.
-bool HTTPi_Response::send()
+bool HttpResponse::send([bool clean_ob = true])
Finally send the entity.
Example:-
-<?php
$r = new HTTPi_Response(true);
$r->setFile('../hidden/contract.pdf');
$r->setContentType('application/pdf');
$r->send();
?>
+<?php
$r = new HttpResponse(true);
$r->setFile('../hidden/contract.pdf');
$r->setContentType('application/pdf');
$r->send();
?>
void HTTPi_Request::__construct([string url[, long request_method = HTTP_GET]])
-Instantiate a new HTTPi_Request object which can be used to issue HEAD, GET
+HttpMessage
+void HttpMessage::__construct([string message])
+Instantiate a new HttpMessage object.
+static HttpMessage HttpMessage::fromString(string raw_message)
+Create an HttpMessage object from a string.
+string HttpMessage::getBody()
+Get the body of the parsed Message.
+array HttpMessage::getHeaders()
+Get Message Headers.
+void HttpMessage::setHeaders(array headers)
+Sets new headers.
+void HttpMessage::addHeaders(array headers[, bool append = false])
+Add headers. If append is true, headers with the same name will be separated, else overwritten.
+long HttpMessage::getType()
+Get Message Type. (HTTP_MSG_NONE|HTTP_MSG_REQUEST|HTTP_MSG_RESPONSE)
+void HttpMessage::setType(long type)
+Set Message Type. (HTTP_MSG_NONE|HTTP_MSG_REQUEST|HTTP_MSG_RESPONSE)
+long HttpMessage::getResponseCode()
+Get the Response Code of the Message.
+bool HttpMessage::setResponseCode(long code)
+Set the response code of an HTTP Response Message.
+
+Returns false if the Message is not of type HTTP_MSG_RESPONSE,
+or if the response code is out of range (100-510).string HttpMessage::getRequestMethod()
+Get the Request Method of the Message.
+
+Returns false if the Message is not of type HTTP_MSG_REQUEST.bool HttpMessage::setRequestMethod(string method)
+Set the Request Method of the HTTP Message.
+
+Returns false if the Message is not of type HTTP_MSG_REQUEST.string HttpMessage::getRequestUri()
+Get the Request URI of the Message.
+bool HttpMessage::setRequestUri(string URI)
+Set the Request URI of the HTTP Message.
+
+Returns false if the Message is not of type HTTP_MSG_REQUEST,
+or if paramtere URI was empty.string HttpMessage::getHttpVersion()
+Get the HTTP Protocol Version of the Message.
+bool HttpMessage::setHttpVersion(string version)
+Set the HTTP Protocol version of the Message.
+
+Returns false if version is invalid (1.0 and 1.1).HttpMessage HttpMessage::getParentMessage()
+Get parent Message.
+bool HttpMessage::send()
+Send the Message according to its type as Response or Request.
+string HttpMessage::toString([bool include_parent = true])
+Get the string representation of the Message.
+HttpRequest
+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 HTTPi_Request::__destruct()
-Destroys the HTTPi_Request object.
-bool HTTPi_Request::setOptions(array options)
+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 HTTPi_Request::getOptions()
+array HttpRequest::getOptions()
Get current set options.
-bool HTTPi_Request::setURL(string url)
+void HttpRequest::unsetOptions()
+Unset all options/headers/cookies.
+bool HttpRequest::setSslOptions(array options)
+Set additional SSL options.
+array HttpRequest::getSslOtpions()
+Get previously set SSL options.
+void HttpRequest::unsetSslOptions()
+Unset previously set SSL options.
+bool HttpRequest::addHeaders(array headers)
+Add request header name/value pairs.
+array HttpRequest::getHeaders()
+Get previously set request headers.
+void HttpRequest::unsetHeaders()
+Unset previously set request headers.
+bool HttpRequest::addCookies(array cookies)
+Add cookies.
+array HttpRequest::getCookies()
+Get previously set cookies.
+void HttpRequest::unsetCookies()
+ +bool HttpRequest::setURL(string url)
Set the request URL.
-string HTTPi_Request::getUrl()
+string HttpRequest::getUrl()
Get the previously set request URL.
-bool HTTPi_Request::setMethod(long request_method)
+bool HttpRequest::setMethod(long request_method)
Set the request methods; one of the HTTP_HEAD, HTTP_GET or
-
HTTP_POST constants.long HTTPi_Request::getMethod()
+long HttpRequest::getMethod()
Get the previously set request method.
-bool HTTPi_Request::setContentType(string content_type)
+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 HTTPi_Request::getContentType()
+string HttpRequest::getContentType()
Get the previously content type.
-bool HTTPi_Request::setQueryData(mixed query_data)
+bool HttpRequest::setQueryData(mixed query_data)
Set the URL query parameters to use.
-
Overwrites previously set query parameters.
Affects any request types.string HTTPi_Request::getQueryData()
+string HttpRequest::getQueryData()
Get the current query data in form of an urlencoded query string.
-bool HTTPi_Request::addQueryData(array query_params)
+bool HttpRequest::addQueryData(array query_params)
Add parameters to the query parameter list.
-
Affects any request type.void HTTPi_Request::unsetQueryData()
+void HttpRequest::unsetQueryData()
Clean the query parameters.
-
Affects any request type.bool HTTPi_Request::addPostData(array post_data)
+bool HttpRequest::addPostFields(array post_data)
Adds POST data entries.
-
Affects only POST requests.bool HTTPi_Request::setPostData(array post_data)
+bool HttpRequest::setPostFields(array post_data)
Set the POST data entries.
-
Overwrites previously set POST data.
Affects only POST requests.array HTTPi_Request::getPostData()
+array HttpRequest::getPostFields()
Get previously set POST data.
-void HTTPi_Request::unsetPostData()
+void HttpRequest::unsetPostFields()
Clean POST data entires.
-
Affects only POST requests.bool HTTPi_Request::addPostFile(string name, string file[, string content_type = "application/x-octetstream"])
+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 HTTPi_Request::getPostFiles()
+bool HttpRequest::setPostFiles()
+Set files to post.
+
+Overwrites previously set post files.
+Affects only POST requests.array HttpRequest::getPostFiles()
Get all previously added POST files.
-void HTTPi_Request::unsetPostFiles()
+void HttpRequest::unsetPostFiles()
Unset the POST files list.
-
Affects only POST requests.array HTTPi_Request::getResponseData()
+bool HttpRequest::SetPutFile(string file)
+Set file to put.
+
+Affects only PUT requests.string HttpRequest::getPutFile()
+Get previously set put file.
+void HttpRequest::unsetPutFile()
+Unset file to put.
+
+Affects only PUT requests.array HttpRequest::getResponseData()
Get all response data after the request has been sent.
-string HTTPi_Request::getResponseHeader([string name])
+mixed HttpRequest::getResponseHeader([string name])
Get response header(s) after the request has been sent.
-string HTTPi_Request::getResponseBody()
+array HttpRequest::getResponseCookie([string name])
+Get response cookie(s) after the request has been sent.
+string HttpRequest::getResponseBody()
Get the response body after the request has been sent.
-int HTTPi_Request::getResponseCode()
+int HttpRequest::getResponseCode()
Get the response code after the request has been sent.
-array HTTPi_Request::getResponseInfo([string name])
+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 HTTPi_Request::send()
+HttpMessage HttpRequest::getResponseMessage()
+Get the full response as HttpMessage object.
+bool HttpRequest::send()
Send the HTTP request.
GET example:
-<?php
$r = new HTTPi_Request('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());
}
?>
+<?php
$r = new HttpRequest('http://example.com/feed.rss', HTTP_GET);
$r->setOptions(array('lastmodified' => filemtime('local.rss')));
$r->addQueryData(array('category' => 3));
try {
$r->send();
if ($r->getResponseCode() == 200) {
file_put_contents('local.rss', $r->getResponseBody());
}
} catch (HttpException $ex) {
echo $ex;
}
?>
POST example:
-<?php
$r = new HTTPi_Request('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();
}
?>
+<?php
$r = new HttpRequest('http://example.com/form.php', HTTP_POST);
$r->setOptions(array('cookies' => array('lang' => 'de')));
$r->addpostFields(array('user' => 'mike', 'pass' => 's3c|r3t'));
$r->addPostFile('image', 'profile.jpg', 'image/jpeg');
if ($r->send()) {
echo $r->getResponseBody();
}
?>
-Generated at: Mon, 7 Mar 2005 14:09:33 +0100
+Generated at: Mon, 6 Jun 2005 13:44:11 +0200