X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=docs%2Ffunctions.html;h=92a14ca2eea4463d0187c7ef2a67dc72ef88872c;hb=64b8eb68455c36e7e153014deaf52a6f9d2de39c;hp=eba8d60cefc2c3838f84a949e2bda4c8ef4c3c6c;hpb=a856e9055f2de647fdb3c7ff89238f6b17a1217e;p=m6w6%2Fext-http diff --git a/docs/functions.html b/docs/functions.html index eba8d60..92a14ca 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -1,209 +1,532 @@ -
This function returns a valid HTTP date regarding RFC 822/1123 +
+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 +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
+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
string http_negotiate_language(array supported[, string default = 'en-US'])
-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';
?> - -string http_negotiate_language(array supported[, string default = 'en-US'])
+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';
?>
+
+
+
string http_negotiate_charset(array supported[, string default = 'iso-8859-1'])
-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');
}
?> - -string http_negotiate_charset(array supported[, string default = 'iso-8859-1'])
+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');
}
?>
+
+
+
bool http_send_status(int status)
+bool http_send_status(int status)
Send HTTP status code.
-bool http_send_last_modified([int timestamp])
-This converts the given timestamp to a valid HTTP date and -sends it as "Last-Modified" HTTP header. If timestamp is +
bool http_send_last_modified([int timestamp])
+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.bool http_match_modified([int timestamp])
-Matches the given timestamp against the clients "If-Modified-Since" resp. +
bool http_send_content_type([string content_type = 'application/x-octetstream'])
+Sets the content type.
+bool http_send_content_disposition(string filename[, bool inline = false])
+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).bool http_match_modified([int timestamp[, for_range = false]])
+Matches the given timestamp against the clients "If-Modified-Since" resp.
-
"If-Unmodified-Since" HTTP headers.bool http_match_etag(string etag)
-This matches the given ETag against the clients +
bool http_match_etag(string etag[, for_range = false])
+This matches the given ETag against the clients
-
"If-Match" resp. "If-None-Match" HTTP headers.bool http_cache_last_modified([int timestamp_or_expires]])
-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, +
bool http_cache_last_modified([int timestamp_or_expires]])
+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
+requested last modification date is not between the calculated timespan,
the Last-Modified header is updated and the actual body will be sent.bool http_cache_etag([string etag])
-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 +
bool http_cache_etag([string etag])
+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.string ob_httpetaghandler(string data, int mode)
-For use with ob_start(). -Note that this has to be started as first output buffer. -WARNING: Don't use with http_send_*().
-void http_redirect([string url[, array params[, bool session,[ bool permanent]]]])
-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, +
string ob_etaghandler(string data, int mode)
+For use with ob_start().
+void http_throttle(double sec[, long bytes = 2097152])
+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');
?>
+
+
+
+void http_redirect([string url[, array params[, bool session,[ bool permanent]]]])
+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.bool http_send_data(string data)
+bool http_send_data(string data)
Sends raw data with support for (multiple) range requests.
-bool http_send_file(string file)
+bool http_send_file(string file)
Sends a file with support for (multiple) range requests.
-bool http_send_stream(resource stream)
+bool http_send_stream(resource stream)
Sends an already opened stream with support for (multiple) range requests.
-bool http_content_type([string content_type = 'application/x-octetstream'])
-Sets the content type.
-bool http_content_disposition(string filename[, bool inline = false])
-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).
-string http_chunked_decode(string encoded)
-This function decodes a string that was HTTP-chunked encoded. +
string http_chunked_decode(string encoded)
+This function decodes a string that was HTTP-chunked encoded.
-
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!\"
);
?> - -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(
'Response Status' => '200 Ok',
'Content-Type' => 'text/plain',
'Content-Language' => 'en-US'
),
1 => "Hello World!"
);
?>
+
+
+
array http_parse_headers(string header)
- -array http_get_request_headers(void)
+array http_parse_headers(string header)
-string http_get(string url[, array options[, array &info]])
-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,
)
?> - -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.
+
+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
+ - resume: int, byte offset to start the download from;
+ if the server supports ranges
+ - maxfilesize: int, maximum file size that should be downloaded;
+ 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 take
+ - onprogress: mixed, progress callback
+ - ondebug: mixed, debug callbackThe 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,
)
?>
+
+
+
string http_head(string url[, array options[, array &info]])
-Performs an HTTP HEAD request on the suppied url. -Returns the HTTP response as string. +
string http_head(string url[, array options[, array &info]])
+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.string http_post_data(string url, string data[, array options[, &info]])
+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_data(string url, string data[, array options[, &info]])
-Performs an HTTP POST request, posting data. -Returns the HTTP response as string. +
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_post_array(string url, array data[, array options[, array &info]])
-Performs an HTTP POST request, posting www-form-urlencoded array data. -Returns the HTTP response as string. +
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.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>');
}
?> - -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>');
}
?>
+
+
+
+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>');
}
?>
+
+
+
+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
+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 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.
+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 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([bool clean_ob = true])
+Finally send the entity.
+
+Example:+
+<?php
$r = new HttpResponse(true);
$r->setFile('../hidden/contract.pdf');
$r->setContentType('application/pdf');
$r->send();
?>
+
+
+
+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 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::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 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::addPostFields(array post_data)
+Adds POST data entries.
+
+Affects only POST requests.bool HttpRequest::setPostFields(array post_data)
+Set the POST data entries.
+
+Overwrites previously set POST data.
+Affects only POST requests.array HttpRequest::getPostFields()
+Get previously set POST data.
+void HttpRequest::unsetPostFields()
+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.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 HttpRequest::unsetPostFiles()
+Unset the POST files list.
+
+Affects only POST requests.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.
+mixed HttpRequest::getResponseHeader([string name])
+Get response header(s) after the request has been sent.
+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 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.HttpMessage HttpRequest::getResponseMessage()
+Get the full response as HttpMessage object.
+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));
try {
$r->send();
if ($r->getResponseCode() == 200) {
file_put_contents('local.rss', $r->getResponseBody());
}
} catch (HttpException $ex) {
echo $ex;
}
?>
+
+POST example:
+
+<?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();
}
?>
+
+
+
+HttpRequestPool
+void HttpRequestPool::__construct()
+Instantiate a new HttpRequestPool object. An HttpRequestPool is
+able to send several HttpRequests in parallel.
+
+Example:-
+<?php
$urls = array('www.php.net', 'pecl.php.net', 'pear.php.net')
$pool = new HttpRequestPool;
foreach ($urls as $url) {
$req[$url] = new HttpRequest("http://$url", HTTP_HEAD);
$pool->attach($req[$url]);
}
$pool->send();
foreach ($urls as $url) {
printf("%s (%s) is %s\n",
$url, $req[$url]->getResponseInfo('effective_url'),
$r->getResponseCode() == 200 ? 'alive' : 'not alive'
);
}
?>
+
+
+
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>');
}
?> - -void HttpRequestPool::__destruct()
+Clean up HttpRequestPool object.
+void HttpRequestPool::reset()
+Detach all attached HttpRequest objects.
+bool HttpRequestPool::attach(HttpRequest request)
+Attach an HttpRequest object to this HttpRequestPool.
+
+NOTE: set all options prior attaching!bool HttpRequestPool::detach(HttpRequest request)
+Detach an HttpRequest object from this HttpRequestPool.
+bool HttpRequestPool::send()
+Send all attached HttpRequest objects in parallel.
+protected bool HttpRequestPool::socketSend()
+Usage:
-
+<?php
while ($pool->socketSend()) {
do_something_else();
if (!$pool->socketSelect()) {
die('Socket error');
}
}
$pool->socketRead();
?>
+
+
+
Generated at: Thu, 17 Feb 2005 22:42:18 +0100
+protected bool HttpRequestPool::socketSelect()
+See HttpRequestPool::socketSend().
+protected void HttpRequestPool::socketRead()
+See HttpRequestPool::socketSend().
+
+Generated at: Tue, 14 Jun 2005 16:56:52 +0200
+