本文整理汇总了PHP中HTTP::CondenseURL方法的典型用法代码示例。如果您正苦于以下问题:PHP HTTP::CondenseURL方法的具体用法?PHP HTTP::CondenseURL怎么用?PHP HTTP::CondenseURL使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTTP
的用法示例。
在下文中一共展示了HTTP::CondenseURL方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Connect
public function Connect($url, $origin, $profile = "auto", $options = array(), $web = false)
{
$this->Disconnect();
if (class_exists("CSPRNG") && $this->csprng === false) {
$this->csprng = new CSPRNG();
}
if (isset($options["fp"]) && is_resource($options["fp"])) {
$this->fp = $options["fp"];
} else {
// Use WebBrowser to initiate the connection.
if ($web === false) {
$web = new WebBrowser();
}
// Transform URL.
$url2 = HTTP::ExtractURL($url);
if ($url2["scheme"] != "ws" && $url2["scheme"] != "wss") {
return array("success" => false, "error" => HTTP::HTTPTranslate("WebSocket::Connect() only supports the 'ws' and 'wss' protocols."), "errorcode" => "protocol_check");
}
$url2["scheme"] = str_replace("ws", "http", $url2["scheme"]);
$url2 = HTTP::CondenseURL($url2);
// Generate correct request headers.
if (!isset($options["headers"])) {
$options["headers"] = array();
}
$options["headers"]["Connection"] = "keep-alive, Upgrade";
if ($origin != "") {
$options["headers"]["Origin"] = $origin;
}
$options["headers"]["Pragma"] = "no-cache";
$key = base64_encode($this->PRNGBytes(16));
$options["headers"]["Sec-WebSocket-Key"] = $key;
$options["headers"]["Sec-WebSocket-Version"] = "13";
$options["headers"]["Upgrade"] = "websocket";
// No async support for connecting at this time. Async mode is enabled AFTER connecting though.
unset($options["async"]);
// Connect to the WebSocket.
$result = $web->Process($url2, $profile, $options);
if (!$result["success"]) {
return $result;
}
if ($result["response"]["code"] != 101) {
return array("success" => false, "error" => HTTP::HTTPTranslate("WebSocket::Connect() failed to connect to the WebSocket. Server returned: %s %s", $result["response"]["code"], $result["response"]["meaning"]), "errorcode" => "incorrect_server_response");
}
if (!isset($result["headers"]["Sec-Websocket-Accept"])) {
return array("success" => false, "error" => HTTP::HTTPTranslate("Server failed to include a 'Sec-WebSocket-Accept' header in its response to the request."), "errorcode" => "missing_server_websocket_accept_header");
}
// Verify the Sec-WebSocket-Accept response.
if ($result["headers"]["Sec-Websocket-Accept"][0] !== base64_encode(sha1($key . self::KEY_GUID, true))) {
return array("success" => false, "error" => HTTP::HTTPTranslate("The server's 'Sec-WebSocket-Accept' header is invalid."), "errorcode" => "invalid_server_websocket_accept_header");
}
$this->fp = $result["fp"];
}
// Enable non-blocking mode.
stream_set_blocking($this->fp, 0);
$this->state = self::STATE_OPEN;
$this->readdata = "";
$this->readmessages = array();
$this->writedata = "";
$this->writemessages = array();
$this->lastkeepalive = time();
$this->keepalivesent = false;
return array("success" => true);
}
示例2: curl_exec
function curl_exec($ch)
{
global $curl_init__map;
$key = get_check_curl_init_key($ch);
// Set allowed protocols.
$allowedprotocols = array("http" => true, "https" => true);
if (isset($curl_init__map[$key]["options"][CURLOPT_PROTOCOLS])) {
$allowedprotocols["http"] = (bool) ($curl_init__map[$key]["options"][CURLOPT_PROTOCOLS] & CURLPROTO_HTTP);
$allowedprotocols["https"] = (bool) ($curl_init__map[$key]["options"][CURLOPT_PROTOCOLS] & CURLPROTO_HTTPS);
}
$curl_init__map[$key]["browser"]->SetState(array("allowedprotocols" => $allowedprotocols));
// Set allowed redirect protocols.
$allowedprotocols = array("http" => true, "https" => true);
if (isset($curl_init__map[$key]["options"][CURLOPT_REDIR_PROTOCOLS])) {
$allowedprotocols["http"] = (bool) ($curl_init__map[$key]["options"][CURLOPT_REDIR_PROTOCOLS] & CURLPROTO_HTTP);
$allowedprotocols["https"] = (bool) ($curl_init__map[$key]["options"][CURLOPT_REDIR_PROTOCOLS] & CURLPROTO_HTTPS);
}
$curl_init__map[$key]["browser"]->SetState(array("allowedredirprotocols" => $allowedprotocols));
// Load cookies. Violates the PHP/cURL definition a lot. Whatever.
if (isset($curl_init__map[$key]["options"][CURLOPT_COOKIEFILE]) && is_string($curl_init__map[$key]["options"][CURLOPT_COOKIEFILE]) && $curl_init__map[$key]["options"][CURLOPT_COOKIEFILE] != "") {
$data = @unserialize(@file_get_contents($curl_init__map[$key]["options"][CURLOPT_COOKIEFILE]));
if ($data !== false && is_array($data)) {
// Load the WebBrowser() object with the cookies.
$curl_init__map[$key]["browser"]->SetState(array("cookies" => $data));
}
$curl_init__map[$key]["options"][CURLOPT_COOKIEFILE] = "";
}
if (isset($curl_init__map[$key]["options"][CURLOPT_COOKIESESSION]) && $curl_init__map[$key]["options"][CURLOPT_COOKIESESSION]) {
$curl_init__map[$key]["browser"]->DeleteSessionCookies();
}
// Set the autoreferer setting.
$curl_init__map[$key]["browser"]->SetState(array("autoreferer" => isset($curl_init__map[$key]["options"][CURLOPT_AUTOREFERER]) && $curl_init__map[$key]["options"][CURLOPT_AUTOREFERER]));
// Set the Referer.
if (isset($curl_init__map[$key]["options"][CURLOPT_REFERER]) && is_string($curl_init__map[$key]["options"][CURLOPT_REFERER])) {
$curl_init__map[$key]["browser"]->SetState(array("referer" => $curl_init__map[$key]["options"][CURLOPT_REFERER]));
}
// Set the followlocation and maxfollow settings.
$curl_init__map[$key]["browser"]->SetState(array("followlocation" => isset($curl_init__map[$key]["options"][CURLOPT_FOLLOWLOCATION]) && $curl_init__map[$key]["options"][CURLOPT_FOLLOWLOCATION]));
$curl_init__map[$key]["browser"]->SetState(array("maxfollow" => isset($curl_init__map[$key]["options"][CURLOPT_MAXREDIRS]) ? $curl_init__map[$key]["options"][CURLOPT_MAXREDIRS] : 20));
// Set up the options array.
$options = array();
// Set connect and total timeout options.
if (isset($curl_init__map[$key]["options"][CURLOPT_CONNECTTIMEOUT]) || isset($curl_init__map[$key]["options"][CURLOPT_CONNECTTIMEOUT_MS])) {
$timeout = (isset($curl_init__map[$key]["options"][CURLOPT_CONNECTTIMEOUT]) ? $curl_init__map[$key]["options"][CURLOPT_CONNECTTIMEOUT] : 0) + (isset($curl_init__map[$key]["options"][CURLOPT_CONNECTTIMEOUT_MS]) ? $curl_init__map[$key]["options"][CURLOPT_CONNECTTIMEOUT_MS] : 0) / 1000;
if ($timeout > 0) {
$options["connecttimeout"] = $timeout;
$options["proxyconnecttimeout"] = $timeout;
}
}
if (isset($curl_init__map[$key]["options"][CURLOPT_TIMEOUT]) || isset($curl_init__map[$key]["options"][CURLOPT_TIMEOUT_MS])) {
$timeout = (isset($curl_init__map[$key]["options"][CURLOPT_TIMEOUT]) ? $curl_init__map[$key]["options"][CURLOPT_TIMEOUT] : 0) + (isset($curl_init__map[$key]["options"][CURLOPT_TIMEOUT_MS]) ? $curl_init__map[$key]["options"][CURLOPT_TIMEOUT_MS] : 0) / 1000;
if ($timeout > 0) {
$options["connecttimeout"] = $timeout;
$options["proxyconnecttimeout"] = $timeout;
}
}
// Set proxy options.
if (isset($curl_init__map[$key]["options"][CURLOPT_PROXY])) {
if (isset($curl_init__map[$key]["options"][CURLOPT_PROXYTYPE]) && $curl_init__map[$key]["options"][CURLOPT_PROXYTYPE] != CURLPROXY_HTTP) {
$curl_init__map[$key]["errorno"] = CURLE_UNSUPPORTED_PROTOCOL;
$curl_init__map[$key]["errorinfo"] = HTTP::HTTPTranslate("CURLOPT_PROXYTYPE option is unsupported.");
return false;
}
$proxyurl = $curl_init__map[$key]["options"][CURLOPT_PROXY];
$proxyport = (int) (isset($curl_init__map[$key]["options"][CURLOPT_PROXYPORT]) ? $curl_init__map[$key]["options"][CURLOPT_PROXYPORT] : false);
if ($proxyport < 1 || $proxyport > 65535) {
$proxyport = false;
}
if (strpos($proxyurl, "://") === false) {
$proxyurl = ($proxyport == 443 ? "https://" : "http://") . $proxyurl;
}
$proxyurl = HTTP::ExtractURL($proxyurl);
if ($proxyport !== false) {
$proxyurl["port"] = $proxyport;
}
if (isset($curl_init__map[$key]["options"][CURLOPT_PROXYUSERPWD])) {
$userpass = explode(":", $curl_init__map[$key]["options"][CURLOPT_PROXYUSERPWD]);
if (count($userpass) == 2) {
$proxyurl["loginusername"] = urldecode($userpass[0]);
$proxyurl["loginpassword"] = urldecode($userpass[1]);
}
}
$options["proxyurl"] = HTTP::CondenseURL($proxyurl);
if (isset($curl_init__map[$key]["options"][CURLOPT_HTTPPROXYTUNNEL])) {
$options["proxyconnect"] = $curl_init__map[$key]["options"][CURLOPT_HTTPPROXYTUNNEL];
}
}
// Set SSL options.
$options["sslopts"] = array();
$options["sslopts"]["verify_peer"] = isset($curl_init__map[$key]["options"][CURLOPT_SSL_VERIFYPEER]) ? $curl_init__map[$key]["options"][CURLOPT_SSL_VERIFYPEER] : true;
if (isset($curl_init__map[$key]["options"][CURLOPT_CAINFO])) {
$options["sslopts"]["cafile"] = $curl_init__map[$key]["options"][CURLOPT_CAINFO];
}
if (isset($curl_init__map[$key]["options"][CURLOPT_CAPATH])) {
$options["sslopts"]["capath"] = $curl_init__map[$key]["options"][CURLOPT_CAPATH];
}
if (!isset($options["sslopts"]["cafile"]) && !isset($options["sslopts"]["capath"])) {
$options["sslopts"]["auto_cainfo"] = true;
}
if (isset($curl_init__map[$key]["options"][CURLOPT_SSLCERT]) && isset($curl_init__map[$key]["options"][CURLOPT_SSLKEY])) {
//.........这里部分代码省略.........
示例3: GenerateFormRequest
public function GenerateFormRequest($submitname = false, $submitvalue = false)
{
$method = $this->info["method"];
$fields = array();
$files = array();
foreach ($this->fields as $field) {
if ($field["type"] == "input.file") {
if (is_array($field["value"])) {
$field["value"]["name"] = $field["name"];
$files[] = $field["value"];
$method = "post";
}
} else {
if ($field["type"] == "input.reset" || $field["type"] == "button.reset") {
} else {
if ($field["type"] == "input.submit" || $field["type"] == "button.submit") {
if (($submitname === false || $field["name"] === $submitname) && ($submitvalue === false || $field["value"] === $submitvalue)) {
if (!isset($fields[$field["name"]])) {
$fields[$field["name"]] = array();
}
$fields[$field["name"]][] = $field["value"];
}
} else {
if ($field["type"] != "input.radio" && $field["type"] != "input.checkbox" || $field["checked"]) {
if (!isset($fields[$field["name"]])) {
$fields[$field["name"]] = array();
}
$fields[$field["name"]][] = $field["value"];
}
}
}
}
}
if ($method == "get") {
$url = HTTP::ExtractURL($this->info["action"]);
unset($url["query"]);
$url["queryvars"] = $fields;
$result = array("url" => HTTP::CondenseURL($url), "options" => array());
} else {
$result = array("url" => $this->info["action"], "options" => array("postvars" => $fields, "files" => $files));
}
return $result;
}