分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

php 生成静态页面

发布时间:2023-09-06 02:21责任编辑:沈小雨关键词:暂无标签

使用ob函数

<?php require_once(dirname(__FILE__).‘/include/config.inc.php‘); ?>
<?php
???$dosql->Execute("SELECT * FROM `#@__infolist` WHERE delstate=‘‘ AND checkinfo=true ORDER BY orderid DESC LIMIT 0,5");

???ob_start();//开启缓存
???echo ‘<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />‘;
???while($row = $dosql->GetArray())
???{
?>
?
???<p><?php echo $row[‘title‘];?> +</p>
<?php
}

if(file_put_contents( ‘index.html‘, ob_get_clean() )){

?echo ‘success‘;
}else{
?echo ‘error‘;
};//把生成的静态内容保存到index.html文件,而不是输出到浏览器

?>

效果:index。html

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
???<p>刘若英 +</p>
?
???<p>小宋佳 +</p>
?
???<p>刘华强 +</p>
?
???<p>某某某 +</p>
?
???<p>上海花旗银行 +</p>

纯静态化的实现

利用php内置的ob函数实现页面的静态化,大概步骤如下:

<?php ob_start();//开启缓存 ?>
<p>我是要生成的静态内容,也可以在该处链接数据库生成动态内容于此</p>
<?php 
file_put_contents( ‘index.html‘, ob_get_clean() );//把生成的静态内容保存到index.html文件,而不是输出到浏览器
?>

摘自网络:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>

</head>
<body>
???????<p style="color: #ff9000;">%demo%</p>
</body>
</html>

这是需要替换的页面

PHP页面的静态化很有必要,尤其是在CMS系统中,一些内容一旦生成,基本上不会有变化,这时如果用html将页面静态化,无疑会减少服务其解析PHP页面的负担。以下是看书学来的PHP静态化技术,记录之以备不时之需。

无论是利用框架还是简单的脚本,原理基本一致:就是利用PHP进行文件操作,替换html模板中的动态元素,不仅能提高用户的访问速度还能让php与html分离,使代码更具有维护性。

用到的文件操作函数:

fopen()          --------------------       打开一个文件  函数有两个参数: 1.打开文件的路径和文件名  2.打开文件所用的模式(字符串形式)   这里用到了r 和 w r代表只读 w代表只写

feof()             --------------------       读取文件直到文件末尾    这个函数会在读取到文件的末尾返回true  那么就可以用while知道何时读完文件;函数有一个参数,1.打开的文件指针

fwiter()         --------------------         写入文件内容,函数有三个参数:1.写入的文件名称  2.写入的内容  3.(可选) 写入的最大字符数 

fclose()   ------------------------  关闭文件;一般做完所有操作后必须关闭文件;

注意事项: 需要注意文件的路径;以及读取文件所需要的权限  ;

<?phpheader("Content-type:text/html,charset=utf-8");/******php静态化*******/ ???class textHtml{ ???????public function fwriteHtml($r){ ???????????/*php页面静态化技术 ????????????*$r [array]; ????????????*route=>生成文件名称及路径 ????????????*html=>需要读取的静态资源 ????????????*stsyem=>要替换的标签 ????????????*content=>标签替换的内容 ????????????* */ ???????????????????????$cfill = fopen($r["html"],"r");//读取的文件名 ???????????$cfillnew = fopen($r["route"],"w"); ???????????while(!feof($cfill)){ ???????????????$row = fgets($cfill); ???????????????$res = str_replace($r["stsyem"],$r["content"],$row); ???//替换内容 ??????????????         fwrite($cfillnew,$res);//写入html文件 ???????????} ???????????/*关闭文件*/ ???????????fclose($cfill); ???????????fclose($cfillnew); ???????} ???} ???????????$f = new textHtml; ???$fillname = microtime().".html"; ???$content = "这是一个页面静态化技术"; ???$r["route"] = $fillname; ???$r["html"] = "index.html"; ???$r["stsyem"] = "%demo%"; ???$r["content"] = $content; ???????$f->fwriteHtml($r);?>

  最后得到的结果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>全国城市三级联动</title></head><body> ???????<p style="color: #ff9000;">这是一个页面静态化技术</p></body></html>

利用php静态化技术可以更好的实现网页功能 ; 在创建文章或者一些不经常改变内容中都可以用到

php 生成静态页面

原文地址:https://www.cnblogs.com/yszr/p/9911867.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved