简单的页面缓冲技术(二)
页面
我的具体实现的例子
为了帮助大家有个感性认识,这里我给出在我的主页上实现的基于文件处理的方法。只有主要的处理代码,不完整。
1 $tmpfile="../tmp/".basename($REQUEST_URI);
2 $tmpfile=str_replace("?", "_", $tmpfile);
3 $tmpfile=str_replace("&", "_", $tmpfile);
4 if(file_exists($tmpfile))
5 {
6 $cflag=false;
7 $dtmp=filemtime($tmpfile);
8 $itmp=filemtime($incfile);
9 $cflag=$cflag | ($dtmp 10 $ctmp=filemtime(basename($PHP_SELF));
11 $cflag=$cflag | ($dtmp 12 $ttmp=filemtime("template/content.ihtml");
13 $cflag=$cflag | ($dtmp 14 }
15 else
16 $cflag=true;
17
18 if(!$cflag) //使用存在的文件
19 {
20 readfile($tmpfile);
21 exit;
22 }
23
24 //创建新的文件
25 include "template.class.php3";
26
27 $fp=fopen($incfile, "r");
28 $content=fread($fp, filesize($incfile));
29 fclose($fp);
30
31 //下面进行模版处理
32 $t = new Template("template", "keep");
33
34 $t->set_file("contentfile","content.ihtml");
35
36 $t->set_var(
37 array(
38 "content"=>$content
39 ));
40
41 $t->parse("outputcontent","contentfile");
42
43 $fp=fopen($tmpfile, "w");
44 if($fp)
45 {
46 flock($fp, 3);
47 fwrite($fp, $t->get_var("outputcontent"));
48 flock($fp, 1);
49 fclose($fp);
50 }
51 $t->p("outputcontent");
?>
先向大家介绍一下我的目录结构:
/---bin/ 执行程序目录
| |--content.php3 用于处理文件显示的程序
| |--template/ 用于存放模板文件的目录
| |---content.ihtml 模板文件
|-docs/ 数据文件
|-tmp/ 存放缓冲文件
content.php3文件用来处理动态页面。用户可以通过content.php3?page=id号来读出一个数据文件。具体方法我就不说了,大家只要知道每个数据文件都有一个不同的id号,这样content.php3?page=id号的方式就可以唯一标识一个数据文件。
第1-3行,生成临时文件名。将'?','&'等字符替换成'_'。
第4行,判断临时文件名是否存在,如果有则执行第18-22行,并结束。
第6-13行,判断与生成动态页面有关的文件修改时间与临时文件哪个更新,设置重新生成标志。在这里使用 filemtime()来得到最后修改时间。
第24-41行,利用模板类生成动态结果,放在变量中。关于模板的处理可以参考《模板,PHPLIB处理方式》一文。
第43-50行,生成临时文件。此处对文件进行了加锁处理,以象写冲突。
第51行,输出结果。
这就是我的处理,大家可以自行修改。
缓冲是一项有意义的技术,可以提高访问速度,减少系统消耗。不过方法可能有多种多样,大家可以自由发挥。
本站注:看了这篇文章,竟发现本文作者的思路和本站的静态文章更新的实现原理是一样的。不同的是,本站的文章是每四天定期更新的。如果有兴趣的朋友可以通过页面下方的"view source"链接来查看具体实现的代码。如果有什么疑问和好的思想,欢迎到论坛共同讨论。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Pengenalan fungsi PHP—filemtime(): Dapatkan masa pengubahsuaian terakhir fail Gambaran Keseluruhan: Dalam PHP, filemtime() ialah fungsi yang sangat biasa digunakan, digunakan untuk mendapatkan masa pengubahsuaian terakhir fail. Melalui fungsi ini, kita boleh mendapatkan cap waktu pengubahsuaian terakhir fail untuk memudahkan operasi dan pemprosesan fail. Artikel ini akan memperkenalkan cara menggunakan fungsi filemtime() dan menyediakan contoh kod untuk membantu pembaca memahami dan menggunakan fungsi ini dengan lebih baik. Sintaks fungsi: intfilemtime

Fungsi PHP "filemtime" boleh digunakan untuk mendapatkan masa pengubahsuaian terakhir fail. Penggunaannya sangat mudah, hanya masukkan laluan fail sebagai parameter, dan fungsi akan mengembalikan cap masa yang menunjukkan masa pengubahsuaian terakhir fail. Seterusnya, saya akan memperkenalkan cara menggunakan fungsi ini dan beberapa contoh kod. Dalam PHP, kita boleh menggunakan fungsi "filemtime" dengan cara berikut: $file_path='path/to/file.txt';//File path

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Pengenalan fungsi PHP: fungsi is_file() Dalam pengaturcaraan PHP, fungsi is_file() ialah fungsi yang sangat berguna. Ia digunakan untuk menentukan sama ada laluan atau fail wujud dan merupakan fail biasa. Dalam artikel ini, kami akan memperkenalkan cara menggunakan fungsi is_file() dan menyediakan beberapa contoh kod khusus. Mula-mula, mari kita lihat sintaks fungsi is_file(): boolis_file(string$filename)is_

Artikel ini akan menerangkan secara terperinci tentang membuat fail sementara dalam PHP Editor berpendapat ia agak praktikal, jadi saya kongsikan dengan anda sebagai rujukan saya harap anda boleh memperoleh sesuatu selepas membaca artikel ini. Pengenalan kepada mencipta fail sementara dengan PHP Dalam sesetengah kes, PHP perlu mencipta fail sementara untuk menyimpan atau memproses data. Fail sementara ialah fail yang disimpan sementara dalam sistem fail sistem dan biasanya dipadam secara automatik selepas skrip dilaksanakan. Langkah 1. Cipta pemegang fail sementara Gunakan fungsi tmpfile() untuk mencipta pemegang fail sementara. Fungsi ini mengembalikan aliran yang menunjuk ke fail sementara yang boleh digunakan untuk menulis dan membaca data. $file=tmpfile();2. Tulis data Gunakan fungsi fwrite() untuk menulis data ke fail sementara.

Pengenalan fungsi PHP—tmpfile(): Mencipta fail sementara Dalam pengaturcaraan PHP, memproses fail adalah operasi yang sangat biasa. Dalam sesetengah kes, kami perlu mencipta fail buat sementara waktu untuk melaksanakan pemprosesan tertentu, tetapi kami tidak mahu menyimpan fail itu untuk masa yang lama. Pada masa ini, anda boleh menggunakan fungsi tmpfile() PHP untuk mencipta fail sementara. Artikel ini akan memperkenalkan kepada anda penggunaan fungsi tmpfile() dan langkah berjaga-jaga yang berkaitan. Fungsi tmpfile() ialah salah satu fungsi sistem fail PHP.

Penjelasan terperinci tentang atribut kandungan CSS: kandungan, kaunter dan petikanCSS (helaian gaya berlatarkan) adalah bahagian yang amat diperlukan dalam pembangunan bahagian hadapan Ia boleh membantu kami mengindahkan halaman web dan meningkatkan pengalaman pengguna. Dalam CSS, terdapat beberapa sifat khas yang boleh digunakan untuk mengawal paparan kandungan teks, termasuk kandungan, pembilang dan petikan. Artikel ini menerangkan sifat ini secara terperinci dan menyediakan contoh kod khusus. 1. atribut kandungan atribut kandungan

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。
