首页 > 作文

php生成静态页面并实现预览功能

更新时间:2023-04-07 15:08:41 阅读: 评论:0

一、前言

这篇文章主要是记录一下php生成静态页面的大致步骤,关于页面静态化,大家想必都听说过,但是真正用的时候反而不是很多。有些页面考虑到访问量比较大,页面结构又不常改动的,比如新闻公告等,可以考虑做成静态页面放在服务器上,这样第一是能抗住大流量的访问,第二也是更加安全一些,打开速度上有保证。

二、正文

1、什么是静态化

就比如我们平时写项目的时候,大部分的页面都是会传参数进去,通过php标签把这些参数展示出来。因为我们的参数随时可以变化,所以页面上的内容也跟着参数变化,这就是动态化的页面。与之相反,静态化就是纯粹的html,页面上的内容不需要通过php或者java等编程语言来改变。

关于静态化的优点,网上也都说的很清楚了,这边不再一一赘述,总之就是打开速度够快,能抗住大流量访问。

2、静态化写法

(1)第一种写法是通过ob_start()缓存来输出

在php文件中编写html代码,然后用bo_get_content获取到,然后输出到html文件,类似于:

 <?php //打开输出控制缓存 ob_start(); echo "<html><head><title>test页面</title></head><body>hello world</body></html>"; //获取缓冲区的内容 $out = ob_get_contents(); //关闭输出缓存 ob_end_clean(); //打开test.html文件开启写入权限 $fp = fopen("test.html", "w"); if (!$fp) { echo "fail";die; } el { //写入文件 fwrite($fp, $out);高考哪天 //关闭文件 fclo($fp); echo "success"; }

参考:

这种写法个人感觉会稍微乱一点,而且如果页面复杂的话,写出来的php+html代码会有些杂乱,所以博主选用的是第二种方法。

(2)提前写好模板页,然后进行替换

先准备好静态文件,然后把要替换的部分标出来,如{title},在php程序中用file_get_content获取html文件的内容,然后进行替换,替换之后保存为文件。

模板页:

<!doctype html><html><head> <meta chart="utf-8"> <title>{top_title}</title> <link rel="stylesheet" href=" " rel="external nofollow" ></head><body><div class="news-details-template"> <h1>{title}</h1> <div class="author">{author}</div> <div class="date">{show_time}</div> <div class="line"></div> <div> {content} </div></div></body></html>

我们先编写好模板页面,包括都有哪部分需要替换,基本的样式等,提前写好

php替换:

$path = \yii::getalias('@xxx').'/views/site/notice-detail.php';$content = file_get_contents($path); //引入模板 //获取要替换的值进行字符串的替换 $content = str_replace('{top_title}',$title,$content); $content = str_replace('{title}',$title,$content); ....... $dir = $path ."/html/"; if (!file_exists($dir)) { mkdir($dir); }$filename=$dir.'/'.$filename; //这里就不判断html是否存在了,因为写入会覆盖$result = file_put_contents($filename,$content);//写入内容到对应静态文件中

大概就是先通过file_get_contents获取模板页的内容,然后通过str_repla江淮大学ce进行标签的替换,替换完成之后,通过file_pu_conte单眼皮女生nts写入到新文件即可。生成的html,我们可以生成多个html,让前端根据不同的页面去访问不同的html即可。

三、生成预览

生成html之后,一般来说是需要预览给工作人员看看的,毕竟人家也不懂技术,不知道到底生成的是啥

1、使用dialog打开窗口

静态页:

//这是我们要打开的窗口,先隐藏<div id="dialog-form-record" style="display:none;"> <div id="content_record">  </div> </div>

js定义底部按钮:

 var arrbutton = { "relea": { 'text': '按钮名称', 'priority': 'condary', 'class': 'btn btn-success', 'id':'', 'click':点击事件 }, "cancel": { 'text': 'cancel', //取消按钮 'priority': 'condary', "id":'xxx', 'click': function () { dialogrecord.dialog( "clo" ); } } }; //定义宽高 dialogrecord = $( "#dialog-form-record" ).dialog({ autoopen: fal, height: 800, width: 1400, modal: true, buttons:arrbutton, clo蜀道难原文带拼音: function() { $( "#content_record" ).html(""); dialogrecord.dialog( "clo" ); } });

js打开窗口:

//定义标题和窗口大小 $( "#dialog-form-record" ).dialog( "option", "title", "preview html" ); $( "#dialog-form-record" ).dialog({ modal: true, height: 800, width: 1400 });

2、使用iframe引入刚才生成的静态文件

(1)js引入iframe

//加个时间戳,防止缓存for (i in respon.) iframe += "<iframe class='news_iframe' id='iframe"+ i +"' src='"+冬季安全教育 respon.url.url +"/news/html/"+ respon.zh[i] + "?timestamp= " + new date().gettime() + "'></iframe>";   } //把iframe写入到html$( "#en_content" ).html(iframe); 

3、注意:

(1)iframe的src里面不能有空格之类的东西
(2)iframe去除边框
(3)iframe加载速度慢,所以加个onload事件,当iframe加载完之后再显示

var iframe = document.getelementbyid("iframe" + count); checkfinisheddownload(iframe); function checkfinisheddownload(ifr) { if (ifr.attachevent) { ifr.attachevent("onload", function() { //iframe加载完成后你需要进行的操作 }); } el { ifr.onload = function() { //iframe加载完成后你需要进行的操作  }; }}

最终效果:

以上就是从生成静态页面到预览的整个流程了,博主也是第一次做静态页面相关的东西,还是挺有意思的,打卡记录一下。

希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-07 15:08:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/c55b715eabb9722f08c68767d1316e36.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php生成静态页面并实现预览功能.doc

本文 PDF 下载地址:php生成静态页面并实现预览功能.pdf

下一篇:返回列表
标签:静态   页面   文件   内容
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图