本文整理汇总了PHP中gzdecode函数的典型用法代码示例。如果您正苦于以下问题:PHP gzdecode函数的具体用法?PHP gzdecode怎么用?PHP gzdecode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gzdecode函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: decodeGz64
function decodeGz64()
{
$contentNodes = $this->xpath->query("//content");
foreach ($contentNodes as $contentNode) {
if ($contentNode->getAttribute("contentType") == "application/x-gzip" && $contentNode->getAttribute('contentTransferEncoding') == "base64") {
$contentDOM = new \DOMDocument();
$contentDOM->loadXML(gzdecode(base64_decode($contentNode->nodeValue)));
$xmlns = "http://schemas.ogf.org/nml/2013/05/base#";
$tagName = "Topology";
foreach ($contentDOM->getElementsByTagNameNS($xmlns, $tagName) as $netNode) {
$node = $this->xml->importNode($netNode, true);
$contentNode->nodeValue = "";
$contentNode->removeAttribute("contentType");
$contentNode->removeAttribute('contentTransferEncoding');
$contentNode->appendChild($node);
}
$xmlns = "http://schemas.ogf.org/nsi/2014/02/discovery/nsa";
$tagName = "nsa";
foreach ($contentDOM->getElementsByTagNameNS($xmlns, $tagName) as $nsaNode) {
$node = $this->xml->importNode($nsaNode, true);
$contentNode->nodeValue = "";
$contentNode->removeAttribute("contentType");
$contentNode->removeAttribute('contentTransferEncoding');
$contentNode->appendChild($node);
}
}
}
}
开发者ID:ufrgs-hyman,项目名称:proxy-agg,代码行数:28,代码来源:NSIProxy.php
示例2: process
public static function process()
{
$security = new Security();
$security->verifyPre();
$data = stream_get_contents(fopen('php://input', 'r'));
$compressedSize = strlen($data);
$security->verifyCompressedData($data, $compressedSize);
$data = @gzdecode($data);
$uncompressedSize = strlen($data);
$security->validateData($data, $uncompressedSize);
$json = json_decode($data, true);
$security->validateJson($json);
if (isset($json['icon'])) {
$img = self::getServerIcon($json['icon']);
$json['icon'] = $img;
$data = json_encode($json);
$uncompressedSize = strlen($data);
}
$key = Util::uuid(false);
$cacheFile = Cache::getFile($key);
Log::info("Uploaded {$uncompressedSize} bytes as {$key} to {$cacheFile}");
Cache::put($key, $data);
header("Location: " . BASE_URL_VIEW . "/?id={$key}");
self::error("Compressed Size: {$compressedSize}\nUncompressed Size: {$uncompressedSize}\nRaw Upload: " . BASE_URL_VIEW . "/?id={$key}&raw=1");
}
开发者ID:ArcheonK,项目名称:timings,代码行数:25,代码来源:Uploader.php
示例3: load
public function load()
{
$file = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $this->name;
if (is_file($file)) {
$this->data = array_merge($this->data, unserialize(gzdecode(file_get_contents($file))));
}
}
开发者ID:ChrisKun,项目名称:ISBC-P1,代码行数:7,代码来源:cache.php
示例4: setContentAndInfo
/**
* Adds the content to the response, which will get JSON decoded and the curl info array.
*
* @param string $content JSON encoded response content
* @param array $info the curl info array
*
* @return void
*/
public function setContentAndInfo($content, array $info)
{
$this->content = json_decode($content);
$this->info = $info;
//for some reason curl sometimes fails to decompress gzipped responses, so we must do it manually
if (empty($this->content) and isset($this->header['Content-Encoding']) and $this->header['Content-Encoding'] == 'gzip') {
$this->content = json_decode(gzdecode($content));
}
//add the response timestamp to the content
if (isset($this->header['Date'])) {
$this->content->dateTs = strtotime($this->header['Date']);
}
if (isset($this->content->access_token)) {
//we need to expire (and refresh) the access token before it expires on CCPs side, which appears to happen
//earlier than it should
$this->expiry = time() + (int) $this->content->expires_in - 20;
} elseif (isset($this->content->expires_in)) {
$this->expiry = time() + (int) $this->content->expires_in;
} elseif (isset($this->header['Cache-Control'])) {
foreach (explode(',', $this->header['Cache-Control']) as $frag) {
if (substr(trim($frag), 0, 8) == 'max-age=') {
$this->expiry = time() + (int) substr(trim($frag), 8);
}
}
}
}
开发者ID:Covert-Inferno,项目名称:iveeCore,代码行数:34,代码来源:Response.php
示例5: output
public function output($files, $cache_key)
{
header('Content-Type: ' . $this->contentType);
OC_Response::enableCaching();
$etag = $this->generateETag($files);
$cache_key .= '-' . $etag;
$gzout = false;
$cache = OC_Cache::getGlobalCache();
if (!OC_Request::isNoCache() && (!defined('DEBUG') || !DEBUG)) {
OC_Response::setETagHeader($etag);
$gzout = $cache->get($cache_key . '.gz');
}
if (!$gzout) {
$out = $this->minimizeFiles($files);
$gzout = gzencode($out);
$cache->set($cache_key . '.gz', $gzout);
OC_Response::setETagHeader($etag);
}
if ($encoding = OC_Request::acceptGZip()) {
header('Content-Encoding: ' . $encoding);
$out = $gzout;
} else {
$out = gzdecode($gzout);
}
header('Content-Length: ' . strlen($out));
echo $out;
}
开发者ID:noci2012,项目名称:owncloud,代码行数:27,代码来源:minimizer.php
示例6: decompress
/**
* Decompress the given value with the specific compression
*
* @param String $sValue
*
* @return String
*
* @throws Exception
*/
public function decompress($sValue)
{
if (!is_string($sValue)) {
throw new Exception('Invalid first argument, must be a string');
}
return gzdecode($sValue);
}
开发者ID:joostina,项目名称:joostina,代码行数:16,代码来源:GzCompression.php
示例7: packDecode
public static function packDecode($str)
{
$header = substr($str, 0, 4);
$len = unpack("Nlen", $header);
$len = $len["len"];
if (DoraConst::SW_DATASIGEN_FLAG == true) {
$signedcode = substr($str, 4, 4);
$result = substr($str, 8);
//check signed
if (pack("N", crc32($result . DoraConst::SW_DATASIGEN_SALT)) != $signedcode) {
return self::packFormat("Signed check error!", 100005);
}
$len = $len - 4;
} else {
$result = substr($str, 4);
}
if ($len != strlen($result)) {
//结果长度不对
echo "error length...\n";
return self::packFormat("packet length invalid 包长度非法", 100007);
}
//if compress the packet
if (DoraConst::SW_DATACOMPRESS_FLAG == true) {
$result = gzdecode($result);
}
$result = unserialize($result);
return self::packFormat("OK", 0, $result);
}
开发者ID:xcl3721,项目名称:dora-rpc,代码行数:28,代码来源:Packet.php
示例8: decompress
protected function decompress($content)
{
if ($this->gzipEnabled && \substr($content, 0, 2) === "‹") {
return \gzdecode($content);
}
return $content;
}
开发者ID:skywalker512,项目名称:FlarumChina,代码行数:7,代码来源:Native.php
示例9: send
/**
* @param array $params
*
* @return mixed
* @throws \InvalidArgumentException
* @throws \RuntimeException
*/
private function send($params)
{
$url = $this->build_url();
if (!$url) {
throw new InvalidArgumentException('Empty target URL given!');
}
$response = null;
if ($params) {
$url = $this->add_parameters_to_url($url, $params);
if ($this->method === 'GET') {
$url = $this->add_params_to_query_string($url, $params);
}
}
$context = $this->filter_request_params($params, $this->method);
$api_response = $this->http_transport->request(esc_url_raw($url), $context);
$this->handle_request_exceptions($api_response);
if ($this->must_respond) {
$api_response = $this->validate_response_content_type($api_response);
$content_type = $api_response['headers']['content-type'];
$response = $api_response['body'];
if (false !== strpos($content_type, 'zip')) {
$response = gzdecode($api_response['body']);
}
if ('json' === $this->response_format) {
$response = json_decode($response);
}
}
return $response;
}
开发者ID:studiopengpeng,项目名称:ASCOMETAL,代码行数:36,代码来源:class-wpml-tp-communication.php
示例10: put
public static function put($killID, $raw)
{
$file = static::getFile($killID, true);
$sem = sem_get(5632);
// kmdb is 5632 on a phone
if (!sem_acquire($sem)) {
throw new Exception('Unable to obtain kmdb semaphore');
}
// Thread safe from here until sem_release
if (!file_exists($file)) {
$kills = array();
} else {
$contents = file_get_contents($file);
$deflated = gzdecode($contents);
$kills = unserialize($deflated);
$contents = null;
}
if (!isset($kills["{$killID}"])) {
$kills["{$killID}"] = $raw;
$contents = serialize($kills);
$compressed = gzencode($contents);
file_put_contents($file, $compressed, LOCK_EX);
}
sem_release($sem);
}
开发者ID:Nord001,项目名称:zKillboard,代码行数:25,代码来源:Killmail.php
示例11: decode_gzip
function decode_gzip($data)
{
if (function_exists('gzdecode')) {
return gzdecode($data);
}
return gzinflate(substr($data, 10, -8));
}
开发者ID:ptcong,项目名称:easyrequest,代码行数:7,代码来源:helpers.php
示例12: PerformDownload
public function PerformDownload()
{
print 'Qcodo Package Manager (QPM) Downloader Tool v' . QCODO_VERSION . "\r\n\r\n";
$strEndPoint = sprintf('%s/DownloadPackage?name=%s&u=%s&gz=', QPackageManager::QpmServiceEndpoint, $this->strPackageName, $this->strUsername);
if (function_exists('gzdecode')) {
$strQpmXmlCompressed = QFileInManifest::DownloadFileFromWebWithStatusOutput($strEndPoint . '1');
$this->strQpmXml = gzdecode($strQpmXmlCompressed);
} else {
$this->strQpmXml = trim(QFileInManifest::DownloadFileFromWebWithStatusOutput($strEndPoint . '0'));
}
if (!$this->strQpmXml) {
throw new Exception(sprintf('package not found: %s/%s', $this->strUsername, $this->strPackageName));
}
$this->objQpmXml = new SimpleXMLElement($this->strQpmXml);
$this->CheckVersion();
if (!$this->blnVersionMatch && !$this->blnForce) {
print $this->GetVersionMismatchWarningText();
}
$strErrorArray = $this->AnalyzePackage();
if (count($strErrorArray)) {
print $this->GetErrorText($strErrorArray);
}
if (!$this->blnLive) {
print $this->GetNonLiveText();
} else {
if (($this->blnVersionMatch || $this->blnForce) && !count($strErrorArray)) {
$this->ExecuteDownload();
}
}
}
开发者ID:proxymoron,项目名称:tracmor,代码行数:30,代码来源:QPackageManagerDownload.class.php
示例13: transformResponse
/**
* @param string $rawResponse
*
* @return Torrent[]
*/
protected function transformResponse($rawResponse)
{
$crawler = new Crawler(gzdecode($rawResponse));
return $crawler->filter('tr[id^="torrent_"]')->each(function ($node) {
$magnet = $node->filter('.ka-magnet')->parents()->attr('href');
preg_match('/btih:([0-9A-Za-z]+)&/', $magnet, $matches);
$hash = $matches[1];
$size = $node->filter('td.nobr')->text();
preg_match('/([0-9\\.]+) ([A-Za-z]+)/', $size, $matches);
$size = $matches[1];
$unit = $matches[2];
$converter = new Nomnom($size);
$torrent = new Torrent();
$torrent->setName($node->filter('a.cellMainLink')->text());
$torrent->setHash($hash);
$torrent->setMagnet($magnet);
if ($unit == 'KB') {
$unit = 'kB';
}
$torrent->setSize($converter->from($unit)->to('B'));
$torrent->setSeeds($node->filter('td.green')->text());
$torrent->setPeers($node->filter('td.red')->text());
return $torrent;
});
}
开发者ID:TomKita,项目名称:Axon,代码行数:30,代码来源:KickassProvider.php
示例14: testEncode
public function testEncode()
{
$testString = 'a string to be compressed';
$result = $this->encoder->encode($testString);
$uncompressedResult = gzdecode($result);
$this->assertSame($testString, $uncompressedResult);
}
开发者ID:brainbits,项目名称:transcoder,代码行数:7,代码来源:GzipEncoderTest.php
示例15: legitimateRequest
/**
* Simulate a user visiting the URL from a browser as closely as we can
*
* @param string $url
* @param array|null $cookies
* @param string|null $referrer
* @param bool $skipBody
*
* @return array
*/
static function legitimateRequest($url, $cookies = null, $referrer = null, bool $skipBody = false)
{
$r = curl_init();
$curl_opt = array(CURLOPT_HTTPHEADER => array("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Encoding: gzip, deflate, sdch", "Accept-Language: hu,en-GB;q=0.8,en;q=0.6", "Connection: keep-alive"), CURLOPT_HEADER => true, CURLOPT_URL => $url, CURLOPT_BINARYTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.5678.91 Safari/537.36");
if (isset($referrer)) {
$curl_opt[CURLOPT_REFERER] = $referrer;
}
if (is_array($cookies)) {
$curl_opt[CURLOPT_COOKIE] = implode('; ', $cookies);
}
if ($skipBody === true) {
$curl_opt[CURLOPT_NOBODY] = $skipBody;
}
curl_setopt_array($r, $curl_opt);
$response = curl_exec($r);
$responseCode = curl_getinfo($r, CURLINFO_HTTP_CODE);
$headerSize = curl_getinfo($r, CURLINFO_HEADER_SIZE);
$responseHeaders = rtrim(CoreUtils::substring($response, 0, $headerSize));
$response = CoreUtils::substring($response, $headerSize);
$curlError = curl_error($r);
curl_close($r);
if ($responseCode < 200 || $responseCode >= 300) {
throw new CURLRequestException(rtrim("cURL fail for URL \"{$url}\" (HTTP {$responseCode}); {$curlError}", ' ;'), $responseCode);
}
global $http_response_header;
$http_response_header = array_map("rtrim", explode("\n", $responseHeaders));
if (preg_match(new RegExp('Content-Encoding:\\s?gzip'), $responseHeaders)) {
$response = gzdecode($response);
}
return array('responseHeaders' => $responseHeaders, 'response' => $response);
}
开发者ID:ponydevs,项目名称:MLPVC-RR,代码行数:41,代码来源:HTTP.php
示例16: mta_decode
function mta_decode($headers, $data)
{
$encode_types = get_content_encoding($headers);
$types = explode(',', $encode_types);
$res_data = $data;
foreach ($types as $type) {
if ($type == 'rc4') {
$res_data = mta_rc4($res_data);
} else {
if ($type == 'gzip') {
$header = unpack('Nlength/Lgzip', $res_data);
if (intval($header['gzip']) === 0x88b1f) {
$header = unpack('Nlength/H*body', $res_data);
//$header['ori_buf'] = bin2hex($res_data);
//$header['ori_len'] = strlen($res_data);
$res_data = hex2bin($header['body']);
} else {
}
$res_data = gzdecode($res_data);
//jsondb_logger('nofity', 'gzip log', ['res'=>$res_data,'len'=>strlen($res_data),'header'=>$header]);
}
}
}
if (empty($res_data)) {
jsondb_logger('notify', 'error ' . bin2hex($data));
}
return json_decode($res_data);
}
开发者ID:sdgdsffdsfff,项目名称:client-ident-proxy,代码行数:28,代码来源:mta.php
示例17: getAsset
function getAsset($asset)
{
$curl = curl_init("http://www.roblox.com/Asset/?id={$asset}");
curl_setopt_array($curl, array(CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTPHEADER => array('Accept-Encoding: gzip')));
$response = curl_exec($curl);
return gzdecode($response);
}
开发者ID:TebbadRBLX,项目名称:Bots,代码行数:7,代码来源:getAsset.php
示例18: updateCountryIps
public function updateCountryIps($url)
{
set_time_limit(600);
// Fetch all the countries
$countries = [];
$countries_db = $this->getModel('\\core\\classes\\models\\Country')->getMulti();
foreach ($countries_db as $country) {
$countries[strtoupper($country->code)] = $country;
}
$this->database->executeQuery('TRUNCATE country_ip4;');
// download and decompress
$contents = file_get_contents($url);
$contents = gzdecode($contents);
$lines = explode("\n", $contents);
foreach ($lines as $line) {
$row = str_getcsv($line);
if (!preg_match('/:/', $row[0]) && isset($row[2])) {
if (isset($countries[$row[2]])) {
$ip = $this->getModel('\\modules\\location_detect\\classes\\models\\CountryIP4');
$ip->start = $row[0];
$ip->end = $row[1];
$ip->country_id = $countries[strtoupper($row[2])]->id;
$ip->insert();
}
}
}
}
开发者ID:akmcomau,项目名称:openmvc-location-detect,代码行数:27,代码来源:CountryIP4.php
示例19: get
public function get(LogFile $logFile)
{
$args = self::getFilesystem($logFile->getArgs());
$file = $args['filesystem']->read($args['path']);
if (pathinfo($args['path'])['extension'] === 'gz') {
$file = gzdecode($file);
}
$lines = explode("\n", $file);
$parser = new LineLogParser();
if (isset($args['pattern'])) {
$hasCustomPattern = true;
$parser->registerPattern('custom', $args['pattern']);
} else {
$hasCustomPattern = false;
}
foreach ($lines as $line) {
$entry = $hasCustomPattern ? $parser->parse($line, 0, 'custom') : $parser->parse($line, 0);
if (count($entry) > 0) {
if (!$logFile->hasLogger($entry['logger'])) {
$logFile->addLogger($entry['logger']);
}
$logFile->addLine($entry);
}
}
if ($this->reverse) {
$logFile->reverseLines();
}
return $logFile;
}
开发者ID:syonix,项目名称:log-viewer-lib,代码行数:29,代码来源:LogFileAccessor.php
示例20: addQuestions
public function addQuestions($url)
{
$con = mysqli_connect($host, $user, $password, $database) or die('Error in Connecting: ' . mysqli_error($con));
$binary = file_get_contents($url);
$data = gzdecode($binary);
$json = json_decode($data);
foreach ($json->items as $row) {
//Verificar se o autor já está na tabela Author antes
/*$author_id = $row->owner->user_id;
$author_link = $row->owner->link;
$author_login = $row->owner->display_name;
$sql = "INSERT INTO Author (id, link, login)
VALUES (".$author_id.", '".$author_link."', '".$author_login."')";
$con->query($sql); */
$link = $row->link;
$title = $row->title;
$creation = $row->creation_date;
$answered = $row->is_answered;
$sql = "INSERT INTO Question (link, title, creation, answered)\n \t\tVALUES ('" . $link . "', '" . $title . "', '" . $creation . "', " . $answered . ")";
//, ".$author_id.
$con->query($sql);
$con->close();
}
}
开发者ID:katiany,项目名称:mobleetest,代码行数:26,代码来源:DataHandler.class.php
注:本文中的gzdecode函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论