php生成静态页面并实现预览功能
一、前言
本文主要记录了用php生成静态页面的一般步骤。大家一定听说过静态页面,但实际使用的并不多。有些页面,比如新闻公告之类的,可以做成静态页面放在服务器上,这样一来,一是可以抵抗大流量访问,二是更安全,打开速度有保障。
二、正文
1、什么是静态
比如我们平时写项目的时候,大部分页面都会传入参数,这些参数会通过php标签显示出来。因为我们的参数可以随时更改,所以页面上的内容会随着参数的变化而变化,这是一个动态页面。相反,statization是纯html,页面上的内容不需要通过php或java等编程语言进行更改。
统计化的好处在网上已经说得很清楚了,这里就不赘述了。简而言之,开放速度足够快,可以抵御繁忙的交通。
2.静态书写
(1)第一种写入方法是通过ob_start()缓存输出
在php文件中编写html代码,然后用bo_get_content获取,然后输出到html文件,类似于:
?Php //打开输出控制缓存ob _ start();echo ' html head title test page/title/header hello world/body/html ';//获取缓冲区的内容$ out=ob _ get _ contents();//关闭输出缓存ob _ end _ clean();//打开test.html文件,写权限$fp=fopen('test.html ',' w ');if(!$ FP){ echo ' Fail ';死去;} else {//写入文件fwrite($fp,$ out);//关闭文件fc lose($ FP);呼应“成功”;}参考:php输出控制函数和输出函数生成静态页面
这种写法会觉得有点乱,如果页面复杂,php html代码会有点乱,所以博主选择第二种方法。
(2)提前写好模板页,然后替换
先准备静态文件,然后标记需要替换的部分,如{title},在php程序中使用file_get_content获取html文件的内容,然后替换,替换后保存为文件。
模板页面:
!DOCTYPE html html head meta charset=' utf-8 ' title { top _ title }/title link rel='样式表' href=' ' rel='外部no follow '/headsdydiv class=' news-details-template ' h1 { title }/h1 Div class='作者' { author }/Div class='日期' { show _ time }/Div class=' line '/Div Div { content }/Div/body/html我们首先编写模板页面,包括哪些部分需要替换,基本样式等。并提前写好
Php替换:
$ path=\ yii :3360 getalias(' @ XXX ')。/view/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);} $文件名=$目录。'/'.$文件名;//这里不判断html是否存在,因为写入会覆盖$ result=file _ put _ contents($ filename,$ content);//将内容写入对应的静态文件大概就是先通过file_get_contents获取模板页面的内容,然后通过str_replace替换标签,再通过file_pu_contents写入新文件。生成的html,我们可以生成多个html,并让前端根据不同的页面访问不同的html。
第三,生成预览
生成html后,一般要给工作人员预览一下。毕竟,人们不了解技术,不知道生成了什么
1.使用对话框打开窗口
静态页面:
//这是我们要打开的窗口。隐藏div ID=' dialog-form-record '样式=' display: none'div id=' content _ record '/div/div js定义底部按钮:
var arrButton={ ' Release ' : { ' text ' : '按钮名称,'优先级' : '次要','类别: 'btn btn-success ',' id': ','点击' :点击事件}、"取消": {"文本":"取消"//取消按钮priority': 'secondary ',' id':'xxx ',' click ' : function(){ dialog record。对话框(“关闭”);} } };//定义宽高dialogRecord=$(' # dialog-form-record ').对话框({ autoOpen: false,height: 800,width: 1400,modal: true,buttons:arrButton,close : function(){ $(' # Content _ record ')).html(" ");对话记录。对话框(“关闭”);} });射流研究…打开窗口:
//定义标题和窗口大小$(' #对话框-表单-记录').对话框('选项'、'标题'、'预览html ');$(' #对话框-表单-记录').对话框({ modal: true,height: 800,width : 1400 });2、使用内联框架引入刚才生成的静态文件
(1)js引入内联框架
//加个时间戳,防止缓存我回应道)iframe=' iframe class=' news _ iframe ' id=' iframe ' I ' ' src=' response。网址。URL '/news/html/'响应。' zh[I]'?时间戳='新日期()。getTime()' '/iframe ';} //把内联框架写入到html$('#en_content ').html(iframe);3、注意:
(1)iframe的科学研究委员会里面不能有空格之类的东西(2)iframe去除边框(3)iframe加载速度慢,所以加个装载事件,当内联框架加载完之后再显示
var iframe=document。getelementbyid(' iframe ' count);checkfinishedddownload(iframe);函数checkfinishedddownload(IFR){ if(IFR。attachevent){ IFR。attachevent(' onload ',function() { //iframe加载完成后你需要进行的操作});} else { IFR。onload=function(){//iframe加载完成后你需要进行的操作};}}最终效果:
以上就是从生成静态页面到预览的整个流程了,博主也是第一次做静态页面相关的东西,还是挺有意思的,打卡记录一下。
希望对大家的学习有所帮助,也希望大家多多支持我们。
版权声明:php生成静态页面并实现预览功能是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。