本文整理汇总了PHP中HTTP::NormalizeHeaders方法的典型用法代码示例。如果您正苦于以下问题:PHP HTTP::NormalizeHeaders方法的具体用法?PHP HTTP::NormalizeHeaders怎么用?PHP HTTP::NormalizeHeaders使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTTP
的用法示例。
在下文中一共展示了HTTP::NormalizeHeaders方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Process
public function Process($url, $profile = "auto", $tempoptions = array())
{
$startts = microtime(true);
$redirectts = $startts;
if (isset($tempoptions["timeout"])) {
$timeout = $tempoptions["timeout"];
} else {
if (isset($this->data["httpopts"]["timeout"])) {
$timeout = $this->data["httpopts"]["timeout"];
} else {
$timeout = false;
}
}
if (!isset($this->data["httpopts"]["headers"])) {
$this->data["httpopts"]["headers"] = array();
}
$this->data["httpopts"]["headers"] = HTTP::NormalizeHeaders($this->data["httpopts"]["headers"]);
unset($this->data["httpopts"]["method"]);
unset($this->data["httpopts"]["write_body_callback"]);
unset($this->data["httpopts"]["body"]);
unset($this->data["httpopts"]["postvars"]);
unset($this->data["httpopts"]["files"]);
$httpopts = $this->data["httpopts"];
$numfollow = $this->data["maxfollow"];
$numredirects = 0;
$totalrawsendsize = 0;
if (!isset($tempoptions["headers"])) {
$tempoptions["headers"] = array();
}
$tempoptions["headers"] = HTTP::NormalizeHeaders($tempoptions["headers"]);
if (isset($tempoptions["headers"]["Referer"])) {
$this->data["referer"] = $tempoptions["headers"]["Referer"];
}
// If a referrer is specified, use it to generate an absolute URL.
if ($this->data["referer"] != "") {
$url = HTTP::ConvertRelativeToAbsoluteURL($this->data["referer"], $url);
}
$urlinfo = HTTP::ExtractURL($url);
do {
if (!isset($this->data["allowedprotocols"][$urlinfo["scheme"]]) || !$this->data["allowedprotocols"][$urlinfo["scheme"]]) {
return array("success" => false, "error" => HTTP::HTTPTranslate("Protocol '%s' is not allowed in '%s'.", $urlinfo["scheme"], $url), "errorcode" => "allowed_protocols");
}
$filename = HTTP::ExtractFilename($urlinfo["path"]);
$pos = strrpos($filename, ".");
$fileext = $pos !== false ? strtolower(substr($filename, $pos + 1)) : "";
// Set up some standard headers.
$headers = array();
$profile = strtolower($profile);
$tempprofile = explode("-", $profile);
if (count($tempprofile) == 2) {
$profile = $tempprofile[0];
$fileext = $tempprofile[1];
}
if (substr($profile, 0, 2) == "ie" || $profile == "auto" && substr($this->data["useragent"], 0, 2) == "ie") {
if ($fileext == "css") {
$headers["Accept"] = "text/css";
} else {
if ($fileext == "png" || $fileext == "jpg" || $fileext == "jpeg" || $fileext == "gif" || $fileext == "svg") {
$headers["Accept"] = "image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5";
} else {
if ($fileext == "js") {
$headers["Accept"] = "application/javascript, */*;q=0.8";
} else {
if ($this->data["referer"] != "" || $fileext == "" || $fileext == "html" || $fileext == "xhtml" || $fileext == "xml") {
$headers["Accept"] = "text/html, application/xhtml+xml, */*";
} else {
$headers["Accept"] = "*/*";
}
}
}
}
$headers["Accept-Language"] = "en-US";
$headers["User-Agent"] = HTTP::GetUserAgent(substr($profile, 0, 2) == "ie" ? $profile : $this->data["useragent"]);
} else {
if ($profile == "firefox" || $profile == "auto" && $this->data["useragent"] == "firefox") {
if ($fileext == "css") {
$headers["Accept"] = "text/css,*/*;q=0.1";
} else {
if ($fileext == "png" || $fileext == "jpg" || $fileext == "jpeg" || $fileext == "gif" || $fileext == "svg") {
$headers["Accept"] = "image/png,image/*;q=0.8,*/*;q=0.5";
} else {
if ($fileext == "js") {
$headers["Accept"] = "*/*";
} else {
$headers["Accept"] = "text/html, application/xhtml+xml, */*";
}
}
}
$headers["Accept-Language"] = "en-us,en;q=0.5";
$headers["Cache-Control"] = "max-age=0";
$headers["User-Agent"] = HTTP::GetUserAgent("firefox");
} else {
if ($profile == "opera" || $profile == "auto" && $this->data["useragent"] == "opera") {
// Opera has the right idea: Just send the same thing regardless of the request type.
$headers["Accept"] = "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
$headers["Accept-Language"] = "en-US,en;q=0.9";
$headers["Cache-Control"] = "no-cache";
$headers["User-Agent"] = HTTP::GetUserAgent("opera");
} else {
if ($profile == "safari" || $profile == "chrome" || $profile == "auto" && ($this->data["useragent"] == "safari" || $this->data["useragent"] == "chrome")) {
//.........这里部分代码省略.........
示例2: Process
public function Process($url, $profile = "auto", $tempoptions = array())
{
$startts = microtime(true);
$redirectts = $startts;
if (isset($tempoptions["timeout"])) {
$timeout = $tempoptions["timeout"];
} else {
if (isset($this->data["httpopts"]["timeout"])) {
$timeout = $this->data["httpopts"]["timeout"];
} else {
$timeout = false;
}
}
// Deal with possible application hanging issues.
if (isset($tempoptions["streamtimeout"])) {
$streamtimeout = $tempoptions["streamtimeout"];
} else {
if (isset($this->data["httpopts"]["streamtimeout"])) {
$streamtimeout = $this->data["httpopts"]["streamtimeout"];
} else {
$streamtimeout = 300;
}
}
$tempoptions["streamtimeout"] = $streamtimeout;
if (!isset($this->data["httpopts"]["headers"])) {
$this->data["httpopts"]["headers"] = array();
}
$this->data["httpopts"]["headers"] = HTTP::NormalizeHeaders($this->data["httpopts"]["headers"]);
unset($this->data["httpopts"]["method"]);
unset($this->data["httpopts"]["write_body_callback"]);
unset($this->data["httpopts"]["body"]);
unset($this->data["httpopts"]["postvars"]);
unset($this->data["httpopts"]["files"]);
$httpopts = $this->data["httpopts"];
$numfollow = $this->data["maxfollow"];
$numredirects = 0;
$totalrawsendsize = 0;
if (!isset($tempoptions["headers"])) {
$tempoptions["headers"] = array();
}
$tempoptions["headers"] = HTTP::NormalizeHeaders($tempoptions["headers"]);
if (isset($tempoptions["headers"]["Referer"])) {
$this->data["referer"] = $tempoptions["headers"]["Referer"];
}
// If a referrer is specified, use it to generate an absolute URL.
if ($this->data["referer"] != "") {
$url = HTTP::ConvertRelativeToAbsoluteURL($this->data["referer"], $url);
}
$urlinfo = HTTP::ExtractURL($url);
// Initialize the process state array.
$state = array("async" => false, "startts" => $startts, "redirectts" => $redirectts, "timeout" => $timeout, "tempoptions" => $tempoptions, "httpopts" => $httpopts, "numfollow" => $numfollow, "numredirects" => $numredirects, "totalrawsendsize" => $totalrawsendsize, "profile" => $profile, "url" => $url, "urlinfo" => $urlinfo, "state" => "initialize", "httpstate" => false, "result" => false);
// Run at least one state cycle to properly initialize the state array.
$result = $this->ProcessState($state);
// Return the state for async calls. Caller must call ProcessState().
if ($state["async"]) {
return array("success" => true, "state" => $state);
}
return $result;
}