本文整理汇总了PHP中gzclose函数的典型用法代码示例。如果您正苦于以下问题:PHP gzclose函数的具体用法?PHP gzclose怎么用?PHP gzclose使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gzclose函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: gzipContent
/**
* Gzip content
*
* @param string $filePath
* @param string $content
* @return void
*/
protected function gzipContent($filePath, $content)
{
$functionName = function_exists('gzopen') ? 'gzopen' : 'gzopen64';
$gzip = $functionName($filePath . $this->gzFileExtension, $this->gzCompressionLevel);
gzputs($gzip, $content);
gzclose($gzip);
}
示例2: geoip_detect_update
function geoip_detect_update()
{
$download_url = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz';
$outFile = geoip_detect_get_database_upload_filename();
// Download
$tmpFile = download_url($download_url);
if (is_wp_error($tmpFile)) {
return $tmpFile->get_error_message();
}
// Ungzip File
$zh = gzopen($tmpFile, 'r');
$h = fopen($outFile, 'w');
if (!$zh) {
return __('Downloaded file could not be opened for reading.', 'geoip-detect');
}
if (!$h) {
return sprintf(__('Database could not be written (%s).', 'geoip-detect'), $outFile);
}
while (($string = gzread($zh, 4096)) != false) {
fwrite($h, $string, strlen($string));
}
gzclose($zh);
fclose($h);
//unlink($tmpFile);
return true;
}
示例3: setFile
private function setFile()
{
$recognize = '';
$recognize = implode('_', $this->dbName);
$fileName = $this->trimPath($this->config['path'] . self::DIR_SEP . time() . '.sql');
$path = $this->setPath($fileName);
if ($path !== true) {
$this->error("无法创建备份目录目录 '{$path}'");
}
if ($this->config['isCompress'] == 0) {
if (!file_put_contents($fileName, $this->content, LOCK_EX)) {
$this->error('写入文件失败,请检查磁盘空间或者权限!');
}
} else {
if (function_exists('gzwrite')) {
$fileName .= '.gz';
if ($gz = gzopen($fileName, 'wb')) {
gzwrite($gz, $this->content);
gzclose($gz);
} else {
$this->error('写入文件失败,请检查磁盘空间或者权限!');
}
} else {
$this->error('没有开启gzip扩展!');
}
}
if ($this->config['isDownload']) {
$this->downloadFile($fileName);
}
}
示例4: WRITE
function WRITE($hash, $overwrite = 0)
{
$id = $hash["id"];
$version = $hash["version"];
$dbfile = $this->FN("{$id}.{$version}");
if (!$overwrite && file_exists($dbfile)) {
return;
}
#-- read-lock
if (file_exists($dbfile)) {
$lock = fopen($dbfile, "rb");
flock($lock, LOCK_EX);
}
#-- open file for writing, secondary lock
if ($f = gzopen($dbfile, "wb" . $this->gz)) {
if (!lock) {
flock($f, LOCK_EX);
}
$r = gzwrite($f, serialize($hash));
gzclose($f);
$this->SETVER($id, $version);
$this->CACHE_ADD($id, $version);
return 1;
}
#-- dispose lock
if ($lock) {
flock($lock, LOCK_UN);
fclose($lock);
}
return 0;
}
示例5: finish
/**
* Finish: close file
*/
public function finish()
{
if ($this->isOpen()) {
gzclose($this->Resource);
$this->Resource = null;
}
}
示例6: testCreate
public function testCreate()
{
$sitemap = new Sitemap(['maxUrlsCountInFile' => 1]);
$sitemapDirectory = $sitemap->sitemapDirectory = $this->path;
$sitemap->addModel(Category::className());
$sitemap->setDisallowUrls(['#category_2#']);
$sitemap->create();
$sitemapFileNames = array();
foreach (glob("{$sitemapDirectory}/sitemap*") as $sitemapFilePath) {
$sitemapFileNames[] = basename($sitemapFilePath);
}
$this->assertEquals($sitemapFileNames, array('sitemap.xml', 'sitemap.xml.gz', 'sitemap1.xml', 'sitemap1.xml.gz', 'sitemap2.xml', 'sitemap2.xml.gz'));
$xmlData = file_get_contents("{$sitemapDirectory}/sitemap.xml");
$this->assertNotFalse(strpos($xmlData, '<?xml version="1.0" encoding="UTF-8"?>'));
$xmlData = file_get_contents("{$sitemapDirectory}/sitemap2.xml");
$this->assertNotFalse(strpos($xmlData, '<loc>http://localhost/category_3</loc>'));
$gzSitemap = gzopen("{$sitemapDirectory}/sitemap.xml.gz", "r");
$sitemap = fopen("{$sitemapDirectory}/sitemap.xml", "r");
$this->assertEquals(fread($gzSitemap, 2000), fread($sitemap, 2000));
gzclose($gzSitemap);
fclose($sitemap);
$gzSitemap = gzopen("{$sitemapDirectory}/sitemap2.xml.gz", "r");
$sitemap = fopen("{$sitemapDirectory}/sitemap2.xml", "r");
$this->assertEquals(fread($gzSitemap, 2000), fread($sitemap, 2000));
gzclose($gzSitemap);
fclose($sitemap);
}
示例7: rotateLogs
/**
* Rotate all files in var/log which ends with .log
*/
public function rotateLogs()
{
$var = Mage::getBaseDir('log');
$logDir = new Varien_Io_File();
$logDir->cd($var);
$logFiles = $logDir->ls(Varien_Io_File::GREP_FILES);
foreach ($logFiles as $logFile) {
if ($logFile['filetype'] == 'log') {
$filename = $logFile['text'];
if (extension_loaded('zlib')) {
$zipname = $var . DS . $this->getArchiveName($filename);
$zip = gzopen($zipname, 'wb9');
gzwrite($zip, $logDir->read($filename));
gzclose($zip);
} else {
$logDir->cp($filename, $this->getArchiveName($filename));
}
foreach ($this->getFilesOlderThan(self::MAX_FILE_DAYS, $var, $filename) as $oldFile) {
$logDir->rm($oldFile['text']);
}
$logDir->rm($filename);
}
}
$logDir->close();
}
示例8: geoip_detect_update
function geoip_detect_update()
{
// TODO: Currently cron is scheduled but not executed. Remove scheduling.
if (get_option('geoip-detect-source') != 'auto') {
return;
}
$download_url = 'http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz';
$download_url = apply_filters('geoip_detect2_download_url', $download_url);
$outFile = geoip_detect_get_database_upload_filename();
// Download
$tmpFile = download_url($download_url);
if (is_wp_error($tmpFile)) {
return $tmpFile->get_error_message();
}
// Ungzip File
$zh = gzopen($tmpFile, 'r');
$h = fopen($outFile, 'w');
if (!$zh) {
return __('Downloaded file could not be opened for reading.', 'geoip-detect');
}
if (!$h) {
return sprintf(__('Database could not be written (%s).', 'geoip-detect'), $outFile);
}
while (($string = gzread($zh, 4096)) != false) {
fwrite($h, $string, strlen($string));
}
gzclose($zh);
fclose($h);
unlink($tmpFile);
return true;
}
示例9: execute
protected function execute(InputInterface $input, OutputInterface $output)
{
$em = $this->getEntityManager($input->getOption('em'));
$c = $this->getContainer();
if (!$c->hasParameter('kb_sitemap.base_url')) {
throw new \RuntimeException("Sitemap requires base_url parameter [kb_sitemap.base_url] to be available, through config or parameters");
}
$output->write('<info>Fetching resources..</info>' . PHP_EOL);
$dql = <<<___SQL
SELECT b.name, b.ownerName, b.updatedAt FROM KnpBundlesBundle:Bundle b
___SQL;
$q = $em->createQuery($dql);
$bundles = $q->getArrayResult();
$dql = <<<___SQL
SELECT d.name, d.createdAt FROM KnpBundlesBundle:Developer d
___SQL;
$q = $em->createQuery($dql);
$users = $q->getArrayResult();
$sitemapFile = $c->getParameter('kernel.root_dir') . '/../web/sitemap.xml';
$output->write('<info>Building sitemap...</info>' . PHP_EOL);
$spaceless = (bool) $input->getOption('spaceless');
$tpl = $spaceless ? 'KnpSitemapBundle::sitemap.spaceless.xml.twig' : 'KnpSitemapBundle::sitemap.xml.twig';
$sitemap = $c->get('templating')->render($tpl, compact('bundles', 'users'));
$output->write("<info>Saving sitemap in [{$sitemapFile}]..</info>" . PHP_EOL);
file_put_contents($sitemapFile, $sitemap);
// gzip the sitemap
if (function_exists('gzopen')) {
$output->write("<info>Gzipping the generated sitemap [{$sitemapFile}.gz]..</info>" . PHP_EOL);
$gz = gzopen($sitemapFile . '.gz', 'w9');
gzwrite($gz, $sitemap);
gzclose($gz);
}
$output->write('<info>Done</info>' . PHP_EOL);
}
示例10: animetitlesUpdate
public function animetitlesUpdate()
{
$db = new DB();
$lastUpdate = $db->queryOneRow("SELECT unixtime AS utime FROM animetitles LIMIT 1");
if (isset($lastUpdate['utime']) && time() - $lastUpdate['utime'] < 604800) {
return;
}
if ($this->echooutput) {
echo "Updating animetitles.";
}
$zh = gzopen('http://anidb.net/api/animetitles.dat.gz', 'r');
preg_match_all('/(\\d+)\\|\\d\\|.+\\|(.+)/', gzread($zh, '10000000'), $animetitles);
if (!$animetitles) {
return false;
}
if ($this->echooutput) {
echo ".";
}
$db->query("DELETE FROM animetitles WHERE anidbID IS NOT NULL");
for ($i = 0; $i < count($animetitles[1]); $i++) {
$db->queryInsert(sprintf("INSERT INTO animetitles (anidbID, title, unixtime) VALUES (%d, %s, %d)", $animetitles[1][$i], $db->escapeString(html_entity_decode($animetitles[2][$i], ENT_QUOTES, 'UTF-8')), time()));
}
$db = NULL;
gzclose($zh);
if ($this->echooutput) {
echo " done.\n";
}
}
示例11: export_tracking
public static function export_tracking()
{
global $wpdb;
// only one export at a time
if (get_option('podlove_tracking_export_all') !== false) {
return;
}
update_option('podlove_tracking_export_all', $wpdb->get_var("SELECT COUNT(*) FROM " . \Podlove\Model\DownloadIntent::table_name()));
update_option('podlove_tracking_export_progress', 0);
$rowsPerQuery = 1000;
$lastId = 0;
$page = 0;
$fp = gzopen(self::get_tracking_export_file_path(), 'w');
do {
// Keeping track of the $lastId is (roughly) a bajillion times faster than paging via LIMIT.
$sql = "\n\t\t\t\tSELECT\n\t\t\t\t\tid,\n\t\t\t\t\tuser_agent_id,\n\t\t\t\t\tmedia_file_id,\n\t\t\t\t\trequest_id,\n\t\t\t\t\taccessed_at,\n\t\t\t\t\tsource,\n\t\t\t\t\tcontext,\n\t\t\t\t\tgeo_area_id,\n\t\t\t\t\tlat,\n\t\t\t\t\tlng\n\t\t\t\tFROM\n\t\t\t\t\t" . \Podlove\Model\DownloadIntent::table_name() . "\n\t\t\t\t\tWHERE id > " . (int) $lastId . "\n\t\t\t\tLIMIT 0, {$rowsPerQuery}";
$rows = $wpdb->get_results($sql, ARRAY_A);
foreach ($rows as $row) {
gzwrite($fp, implode(",", $row) . "\n");
}
$lastId = $row['id'];
$page++;
update_option('podlove_tracking_export_progress', $page * $rowsPerQuery);
} while (count($rows) > 0);
gzclose($fp);
delete_option('podlove_tracking_export_all');
delete_option('podlove_tracking_export_progress');
exit;
}
示例12: import
public function import()
{
// It might not look like it, but it is actually compatible to
// uncompressed files.
$gzFileHandler = gzopen($this->file, 'r');
Model\DownloadIntent::delete_all();
Model\DownloadIntentClean::delete_all();
$batchSize = 1000;
$batch = array();
while (!gzeof($gzFileHandler)) {
$line = gzgets($gzFileHandler);
list($id, $user_agent_id, $media_file_id, $request_id, $accessed_at, $source, $context, $geo_area_id, $lat, $lng) = explode(",", $line);
$batch[] = array($user_agent_id, $media_file_id, $request_id, $accessed_at, $source, $context, $geo_area_id, $lat, $lng);
if (count($batch) >= $batchSize) {
self::save_batch_to_db($batch);
$batch = [];
}
}
gzclose($gzFileHandler);
// save last batch to db
self::save_batch_to_db($batch);
\Podlove\Analytics\DownloadIntentCleanup::cleanup_download_intents();
\Podlove\Cache\TemplateCache::get_instance()->setup_purge();
wp_redirect(admin_url('admin.php?page=podlove_imexport_migration_handle&status=success'));
exit;
}
示例13: __parseLog
protected function __parseLog($file)
{
$items = array();
$last = null;
if (is_readable($file)) {
header('content-type: text/plain');
if (preg_match('/.gz$/', $file)) {
$handle = gzopen($file, "r");
$data = gzread($handle, Symphony::Configuration()->get('maxsize', 'log'));
gzclose($handle);
} else {
$data = file_get_contents($file);
}
$lines = explode(PHP_EOL, $data);
// Skip log info:
while (count($lines)) {
$line = trim(array_shift($lines));
if ($line == '--------------------------------------------') {
break;
}
}
// Create items:
foreach ($lines as $line) {
preg_match('/^(.*?) > (.*)/', trim($line), $matches);
// New entry:
if (count($matches) == 3) {
$message = htmlentities($matches[2]);
$items[] = (object) array('timestamp' => DateTimeObj::get(__SYM_DATETIME_FORMAT__, strtotime($matches[1])), 'message' => $message);
}
}
// Reverse order:
$items = array_reverse($items);
}
return $items;
}
示例14: gzcompressfile
/**
* Compress file on disk
*
* @param string $source
* @param int $level
* @return string|false
*/
function gzcompressfile($source, $level = false)
{
if (file_exists($source)) {
$dest = $source . '.gz';
$mode = 'wb' . $level;
$error = false;
if ($fp_out = gzopen($dest, $mode)) {
if ($fp_in = fopen($source, 'rb')) {
while (!feof($fp_in)) {
gzwrite($fp_out, fread($fp_in, 4096));
}
fclose($fp_in);
} else {
$error = true;
}
gzclose($fp_out);
} else {
$error = true;
}
if ($error) {
return false;
}
return $dest;
}
return false;
}
示例15: update_database
public static function update_database()
{
set_time_limit(0);
$outFile = self::get_upload_file_path();
// for download_url()
require_once ABSPATH . 'wp-admin/includes/file.php';
$tmpFile = \download_url(self::SOURCE_URL);
if (is_wp_error($tmpFile)) {
die($tmpFile->get_error_message());
}
$zh = gzopen($tmpFile, 'rb');
$h = fopen($outFile, 'wb');
if (!$zh) {
die('Downloaded file could not be opened for reading.');
}
if (!$h) {
die(sprintf('Database could not be written (%s).', $outFile));
}
while (!gzeof($zh)) {
fwrite($h, gzread($zh, 4096));
}
gzclose($zh);
fclose($h);
unlink($tmpFile);
if (!self::is_db_valid()) {
die(sprintf('Checksum does not match (%s).', $outFile));
}
}