php如何生成静态文件,php怎么生成html静态首页文件

php怎么生成html静态首页文件

关注:91  答案:2  mip版

解决时间 2021-01-28 22:23

e6cb1a03ad541b3098697807b7bf1798.png

提问者雨份凉伴

2021-01-28 13:07

php怎么生成html静态首页文件

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家落爺英雄遲暮

2021-01-28 14:18

两种方法简单说明如下:

一, 利用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

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

}

else return false;

}

else return false;//was expired you need to create new

}

}

?>

二, 利用模板生成

如果使用过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 "生成";

}

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼降猪十八掌

2021-01-28 15:36

ob_start();//此代码放在页面最前

>

页面核心内容显示区域

$htmlConStr=ob_get_contents();//获取缓冲区内容

ob_end_flush();

>

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值