在公司第三周了,小组在做一个购物平台,为了提高访问速度,一般的网站都会有许多静态页面,这样只需访问一次数据库就可以不再读取数据了。可万万没想到的是生成静态页面这个任务组长交给了我来做,咦~呵呵呵呵,生成静态页面这种东西我一直觉得是高大上的东西啊,怎么会交给我这个新鸟来做呢?!不过交给我了就做呗,如果推迟岂不是很面子。。。。
第一项工作就是借助万能的搜索引擎在互联网上找各种前辈经验啊,后来看了看发现其实很简单啊,并不是多么高深莫测无非就是借助PHP的file类,然后自己写一个函数来生成一个文件,在需要生成静态文件的地方引用该函数就OK了。
首先引入自己的FILE类:
<?php
/**
* 文件处理类
*/
class Files
{
private $resource = null; //文件资源句柄
function __construct($fileName,$mode='r')
{
$dirName = dirname($fileName);//文件路径
$baseName = basename($fileName);//文件名
//检查并创建文件夹
self::mkdir($dirName);
$this->resource = fopen($fileName,$mode.'b');
if($this->resource)
{
flock($this->resource,LOCK_EX);//进行锁定
}
}
//文件写入函数
public function write($content)
{
$worldsnum = fwrite($this->resource,$content);
return is_bool($worldsnum) ? false : $worldsnum;
}
}
写一个函数来生成静态文件:
private function writeHtml($path,$content){
if(! class_exists('Files')){
$this -> load ->file(APPPATH.'libraries/Files'.EXT);//本人用的CI 框架,引入文件类这里要稍作改动
$f = new Files($path,'w+');
$res = $f->write($content);
$f->save();
}
最后在需要生成静态页面的地方调用上面那个函数:
function crativehtml{
$url = "PHP动态文件路径";
$content = file_get_contents($url);//获取文件内容
$this -> _writeFile($path.'文件名.html',$content);
}
就这样一个静态文件就生成了,最后一个文件可以写在多个地方来生成不同的静态文件、、、
做后总结一下:会了不难,难了不会~高代码没有什么是高深莫测的。咦~呵呵呵呵呵、、