php缓存种

Jun 13, 2016 am 11:00 AM
cache content gt this

php缓存类
cache.inc.php:

<?phpclass Cache {   /**    * $dir : 缓存文件存放目录    * $lifetime : 缓存文件有效期,单位为秒    * $cacheid : 缓存文件路径,包含文件名    * $ext : 缓存文件扩展名(可以不用),这里使用是为了查看文件方便   */   private $dir;   private $lifetime;   private $cacheid;   private $ext;   /**    * 析构函数,检查缓存目录是否有效,默认赋值   */   function __construct($dir='',$lifetime=1800) {       if ($this->dir_isvalid($dir)) {           $this->dir = $dir;           $this->lifetime = $lifetime;           $this->ext = '.Php';           $this->cacheid = $this->getcacheid();       }   }   /**    * 检查缓存是否有效   */   private function isvalid() {       if (!file_exists($this->cacheid)) return false;       if (!(@$mtime = filemtime($this->cacheid))) return false;       if (mktime() - $mtime > $this->lifetime) return false;       return true;   }   /**    * 写入缓存    * $mode == 0 , 以浏览器缓存的方式取得页面内容    * $mode == 1 , 以直接赋值(通过$content参数接收)的方式取得页面内容    * $mode == 2 , 以本地读取(fopen ile_get_contents)的方式取得页面内容(似乎这种方式没什么必要)   */   public function write($mode=0,$content='') {       switch ($mode) {           case 0:               $content = ob_get_contents();               break;           default:               break;       }       ob_end_flush();       try {           file_put_contents($this->cacheid,$content);       }       catch (Exception $e) {           $this->error('写入缓存失败!请检查目录权限!');       }   }   /**    * 加载缓存    * exit() 载入缓存后终止原页面程序的执行,缓存无效则运行原页面程序生成缓存    * ob_start() 开启浏览器缓存用于在页面结尾处取得页面内容   */   public function load() {       if ($this->isvalid()) {           echo "<span style='display:none;'>This is Cache.</span> ";           //以下两种方式,哪种方式好?????           require_once($this->cacheid);           //echo file_get_contents($this->cacheid);           exit();       }       else {           ob_start();       }   }   /**    * 清除缓存   */   public function clean() {       try {           unlink($this->cacheid);       }       catch (Exception $e) {           $this->error('清除缓存文件失败!请检查目录权限!');       }   }   /**    * 取得缓存文件路径   */   private function getcacheid() {       return $this->dir.md5($this->geturl()).$this->ext;   }   /**    * 检查目录是否存在或是否可创建    */   private function dir_isvalid($dir) {       if (is_dir($dir)) return true;       try {           mkdir($dir,0777);       }       catch (Exception $e) {             $this->error('所设定缓存目录不存在并且创建失败!请检查目录权限!');             return false;                   }       return true;   }   /**    * 取得当前页面完整url   */   private function geturl() {       $url = '';       if (isset($_SERVER['REQUEST_URI'])) {           $url = $_SERVER['REQUEST_URI'];       }       else {           $url = $_SERVER['Php_SELF'];           $url .= empty($_SERVER['QUERY_STRING'])?'':'?'.$_SERVER['QUERY_STRING'];       }       return $url;   }   /**    * 输出错误信息   */   private function error($str) {       echo '<div style="color:red;">'.$str.'</div>';   }}?>demo.php:<?php/** 可自由转载使用,请保留版权信息,谢谢使用!* Class Name : Cache (For Php5)* Version : 1.0* Description : 动态缓存类,用于控制页面自动生成缓存、调用缓存、更新缓存、删除缓存.* Author : [email&#160;protected],Junin* Author Page : http://blog.csdn.Net/sdts/* Last Modify : 2007-8-22* Remark :  1.此版本为Php5版本,本人暂没有写Php4的版本,如需要请自行参考修改(比较容易啦,不要那么懒嘛,呵呵!).  2.此版本为utf-8编码,如果网站采用其它编码请自行转换,Windows系统用记事本打开另存为,选择相应编码即可(一般ANSI),Linux下请使用相应编辑软件或iconv命令行.  3.拷贝粘贴的就不用管上面第2条了.* 关于缓存的一点感想:* 动态缓存和静态缓存的根本差别在于其是自动的,用户访问页面过程就是生成缓存、浏览缓存、更新缓存的过程,无需人工操作干预.* 静态缓存指的就是生成静态页面,相关操作一般是在网站后台完成,需人工操作(也就是手动生成).*//** 使用方法举例------------------------------------Demo1-------------------------------------------   require_once('cache.inc.php');   $cachedir = './Cache/'; //设定缓存目录   $cache = new Cache($cachedir,10); //省略参数即采用缺省设置, $cache = new Cache($cachedir);   if ($_GET['cacheact'] != 'rewrite') //此处为一技巧,通过xx.Php?cacheact=rewrite更新缓存,以此类推,还可以设定一些其它操作       $cache->load(); //装载缓存,缓存有效则不执行以下页面代码   //页面代码开始   echo date('H:i:s jS F');   //页面代码结束   $cache->write(); //首次运行或缓存过期,生成缓存------------------------------------Demo2-------------------------------------------   require_once('cache.inc.php');   $cachedir = './Cache/'; //设定缓存目录   $cache = new Cache($cachedir,10); //省略参数即采用缺省设置, $cache = new Cache($cachedir);   if ($_GET['cacheact'] != 'rewrite') //此处为一技巧,通过xx.Php?cacheact=rewrite更新缓存,以此类推,还可以设定一些其它操作       $cache->load(); //装载缓存,缓存有效则不执行以下页面代码   //页面代码开始   $content = date('H:i:s jS F');   echo $content;   //页面代码结束   $cache->write(1,$content); //首次运行或缓存过期,生成缓存------------------------------------Demo3-------------------------------------------   require_once('cache.inc.php');   define('CACHEENABLE',true);      if (CACHEENABLE) {       $cachedir = './Cache/'; //设定缓存目录       $cache = new Cache($cachedir,10); //省略参数即采用缺省设置, $cache = new Cache($cachedir);       if ($_GET['cacheact'] != 'rewrite') //此处为一技巧,通过xx.Php?cacheact=rewrite更新缓存,以此类推,还可以设定一些其它操作           $cache->load(); //装载缓存,缓存有效则不执行以下页面代码       }   //页面代码开始   $content = date('H:i:s jS F');   echo $content;   //页面代码结束   if (CACHEENABLE)       $cache->write(1,$content); //首次运行或缓存过期,生成缓存*/?>
Nach dem Login kopieren

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Dec 29, 2023 pm 02:27 PM

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Nachdem ich dem Unternehmen beigetreten war, verstand ich, was Cache ist. Nachdem ich dem Unternehmen beigetreten war, verstand ich, was Cache ist. Jul 31, 2023 pm 04:03 PM

Die Sache ist tatsächlich so. Zu diesem Zeitpunkt gab mir mein Leiter eine Perf-Hardware-Leistungsüberwachungsaufgabe. Während der Verwendung von Perf habe ich die folgenden Informationen eingegeben: Meine Aufgabe besteht darin, diese Cache-Ereignisse zu aktivieren normal gezählt werden. Aber der Punkt ist, ich habe keine Ahnung, was diese Fehlschläge und Belastungen bedeuten.

Fix: Snipping-Tool funktioniert unter Windows 11 nicht Fix: Snipping-Tool funktioniert unter Windows 11 nicht Aug 24, 2023 am 09:48 AM

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone Jul 29, 2023 am 08:22 AM

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

Was ist Cache? Was ist Cache? Nov 25, 2022 am 11:48 AM

Cache wird als Cache-Speicher bezeichnet. Es handelt sich um einen Hochgeschwindigkeitsspeicher mit geringer Kapazität, der im Allgemeinen aus Hochgeschwindigkeits-SRAM besteht um die Lücke zwischen CPU und Speicher zu verringern oder zu beseitigen. Die Auswirkung des Geschwindigkeitsunterschieds zwischen ihnen auf die Systemleistung. Die Cache-Kapazität ist klein, aber schnell, die Speichergeschwindigkeit ist niedrig, aber die Kapazität ist groß. Durch die Optimierung des Planungsalgorithmus wird die Leistung des Systems erheblich verbessert.

Warum erhöht die Verwendung des Caches die Computergeschwindigkeit? Warum erhöht die Verwendung des Caches die Computergeschwindigkeit? Dec 09, 2020 am 11:28 AM

Die Verwendung des Caches kann die Geschwindigkeit des Computers erhöhen, da der Cache die Wartezeit der CPU verkürzt. Cache ist ein kleiner, aber schneller Speicher, der zwischen der CPU und dem Hauptspeicher DRAM liegt. Die Funktion des Cache besteht darin, die Dateneingabe- und -ausgaberate der CPU zu erhöhen. Der Cache hat eine geringe Kapazität, aber eine hohe Geschwindigkeit, während die Speichergeschwindigkeit niedrig ist, aber eine große Kapazität aufweist. Durch die Optimierung des Planungsalgorithmus wird die Leistung des Systems verbessert stark verbessert.

Tutorial zum Nginx-Reverse-Proxy-Caching. Tutorial zum Nginx-Reverse-Proxy-Caching. Feb 18, 2024 pm 04:48 PM

Hier ist das Tutorial für das Nginx-Reverse-Proxy-Caching: Nginx installieren: sudoaptupdatesudoaptinstallnginx Reverse-Proxy konfigurieren: Nginx-Konfigurationsdatei öffnen: sudonano/etc/nginx/nginx.conf Fügen Sie die folgende Konfiguration im http-Block hinzu, um das Caching zu aktivieren: http{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache

So verwenden Sie den Cache im SpringBoot-Projekt So verwenden Sie den Cache im SpringBoot-Projekt May 16, 2023 pm 02:34 PM

Vorwort Caching kann die Systemleistung und -stabilität effektiv verbessern, indem es häufig aufgerufene Daten im Speicher speichert und so den Druck auf zugrunde liegende Datenquellen wie Datenbanken verringert. Ich denke, jeder hat es mehr oder weniger in seinen Projekten verwendet, und unser Projekt ist keine Ausnahme. Als ich jedoch kürzlich den Code des Unternehmens überprüfte, war der Text sehr dumm und niedrig. Der grobe Text lautet wie folgt: publicUsergetById(Stringid) {Useruser=cache. getUser();if(user!=null){returnuser;}//Benutzer aus der Datenbank abrufen=loadFromDB(id);cahce.put(id,user);returnu

See all articles