php生成html静态页面的二种方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-28 14:45:43 浏览: 评论:0
在我之前所见的文章中要不是用代码堆砌空间就是用高手与高手交流用的语言让新人望而生却,因此本文尽量把整体思路说得详尽点.
两种方法简单说明如下:
一,利用PHP的输出控制函数(Output Control)得到静态页面字符串,再写入到新的文件中.
使用说明:
1、实例化,代码如下:
$cache = new Cache();
2、设置缓存时间和缓存目录
$cache = new Cache(60,'/any_other_path/');
第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置,默认情况下,缓存时间是 3600 秒,缓存目录是 cache/.
3、读取缓存,代码如下:
- $value = $cache->get('data_key');4、写入缓存
- $value = $cache->put('data_key', 'data_value');完整实例:
- $cache = new Cache();
- //从缓存从读取键值 $key 的数据
- $values = $cache->get($key);
- //如果没有缓存数据
- if ($values == false) {
- //insert code here...
- //写入键值 $key 的数据
- $cache->put($key, $values);
- } else {
- //insert code here...
- }
Cache.class.php
- <?php
- class Cache {
- private $cache_path;//path for the cache
- private $cache_expire;//seconds that the cache expires
- //cache constructor, optional expiring time and cache path
- public function Cache($exp_time=3600,$path="cache/"){
- $this->cache_expire=$exp_time;
- $this->cache_path=$path;
- }
- //returns the filename for the cache
- private function fileName($key){
- return $this->cache_path.md5($key);
- }
- //creates new cache files with the given data, $key== name of the cache, data the info/values to store
- public function put($key, $data){
- $values = serialize($data);
- $filename = $this->fileName($key);
- $file = fopen($filename, 'w');
- if ($file){//able to create the file
- fwrite($file, $values);
- fclose($file);
- }
- else return false;
- }
- //returns cache for the given key
- public function get($key){
- $filename = $this->fileName($key);
- if (!file_exists($filename) || !is_readable($filename)){//can't read the cache
- return false;
- }
- if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired
- $file = fopen($filename, "r");// read data file
- if ($file){//able to open the file
- $data = fread($file, filesize($filename));
- fclose($file);
- return unserialize($data);//return the values
- }//开源代码phpfensi.com
- else return false;
- }
- else return false;//was expired you need to create new
- }
- }
- ?>
二,利用模板生成
什么是模板?如果大家使用过Dreamwerver中的“另存为模板”就应该知道模板是用来统一风格的东西,它只让你修改页面的某一部分,当然这“某一部分”是由你来确定的,本文在这说的模板也就是这个意思,此外,PHP模板技术还包括phplib、smarty等等,这不是本文所说内容了.
把模板的概念结合本文再说得具体一点就是:美工先做好一个页面,然后我们把这个页面当作模板(要注意的是这个模板就没必要使用EditRegion3这样的代码了,这种代码是Dreamwerver为了方便自己设计而弄的标识),把这个模板中我们需要改变的地方用一个与HTML可以区分的字符代替,如“{title}”、“[title]”。在生成静态页面的时候只需要把数据和这些字符串替换即可。这就是模板的含义了.
步骤:
1.新建一个php页面和一个html页面[模板页];注:如果是从数据库调用数据,则将数据以数组的形式保存,然后循环生成;
2.在php页面,打开html页面->读取html页面的内容->替换参数->新建(打开)一个新的html页面->将替换的内容写入新文件中->关闭新文件->生成成功;代码如下:
- $open = fopen("template.htm","r"); //打开模板文件
- $content = fread($open,filesize("template.htm")); //读取模板文件内容
- //print_r($content);
- $content = str_replace("{title}","测试标题",$content);//替换
- $content = str_replace("{contents}","测试内容",$content);
- $newtemp = fopen("1.htm","w");//生成,用写入方式打开一个不存在(新)的页面
- fwrite($newtemp,$content);//将刚刚替换的内容写入新文件中
- fclose($newtemp);
- echo "生成";
php批量生成html测试,代码如下:
- //假设从数据库中调的数据存放在二维数组$arr中
- $arr = array(array("新闻标题一","新闻内容一"),array("新闻标题二","新闻内容二"));
- foreach($arr as $key=>$value){
- $title = $value[0];
- $contents = $value[1];
- //echo $title.''.$contents.'';
- $path = $key.'.html';
- $open = fopen("template.htm","r"); //打开模板文件
- $handle = fread($open,filesize("template.htm")); //读取模板文件内容
- $content = str_replace("{title}",$title,$handle);//替换
- $content = str_replace("{contents}",$contents,$handle);
- $newtemp = fopen($path,"w");//用写入方式打开一个不存在(新)的页面
- fwrite($newtemp,$content);//将刚刚替换的内容写入新文件中
- fclose($newtemp);
- echo "生成";
- }
Tags: php生成html php静态页面
- 上一篇:PHP无限级分类实现程序
- 下一篇:php生成二维码实现代码
相关文章
- ·php生成html文件的多种方法介绍(2014-08-29)
- ·php生成静态页面代码(2014-09-09)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)