好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php静态化博客 php静态变量的含义

很多站长朋友们都不太清楚php静态化博客,今天小编就来给大家整理php静态化博客,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 大型php网站全站静态化怎么实现? 如果有上万个页面每更改一小篇文章都要全部重新生成吗? 2、 PHP网站如何纯静态化 3、 php如何实现网页静态 大型php网站全站静态化怎么实现? 如果有上万个页面每更改一小篇文章都要全部重新生成吗?

用libTemplate实现静态网页的生成

作者:iwind

原来在dev-club发表的一篇文章,将怎么用模板处理程序PHPlib 中的template.inc实现静态网页的生成,呵呵,居然被列入精华,并被多个网站转载,想来这是荣幸。其实网上这方面的东西很多了,我上此发布的所谓IAMS( iwind 文章管理系统),里面也有,有心人可以看一下。下面我只是简要在总结一次。

现在一般说生成静态网页的方法有三种,一个是配置服务器,大家可以到 去找找看,对于这个很多地方都有的。另外一个是用ob_函数控制输出。方法如下:先用ob_start();打开输出缓冲器,然后是对数据的分析,操作等等,跟着用ob_get_contents();获取缓冲区的内容,然后再写入文件。根据这个步骤,可以写出以下程序:

<?php

ob_start();

//主体部分,数据操作,处理,输出等等。。。

require”global.php”;

mysql_connect(“localhost”,”root”,””);

…..

//获取缓冲区内容

$contents=ob_get_contents();

//如果不想输出任何东西,可以加上这句

ob_end_clean();

//写入目的文件

$fp=@fopen($targetFile,”w+”) or die(“打开文件时出错”);

fwrite($fp,$contents);

?>

这样就把这个动态页面的内容写入了静态页面,$targetFile.像有的网站首页内容很多,要调用n多个查询语句时,不妨定时生成静态网页,既大幅提高了访问速度,也减轻了服务器负担。

你可以看出来,我用ob_只是处理单个页面,对于批量写入或更新多个页面,这个方法就不行了。这就是我要讲的第三种方法,用模板。模板是个好东东,现在大家都或多或少在用它,建议还不会简单模板处理的网友,花点时间去学它,一般的模板处理程序都很简单的。用模板实现静态网页的生成是非常简单的,方法就是获取分析结果,把分析结果写入文件。下面就以PHPlib中的template.inc来谈谈如果用模板生成静态网页。

一, 修改template.inc

加入以下的几个函数:

//将分析结果保存到文件中去

function savetofile ($dir,$varname){

$data=$this-> finish($this-> get_var($varname));

$fp=fopen($dir, "w+ ");

fwrite($fp,$data);

}

//清除已赋值数组

function renew(){

$this-> varkeys=array();

$this-> varvals=array();

$this-> file=array();

}

第一个函数是结果保存到静态文件中,第二个是把所有的模板分析变量都置为空,以免批量处理时相互影响。

二,实现静态网页生成。

<?php

$itpl-> set_file(“main”,”mian.tpl”);

//分析模板变量

…..

//分析main?mains

$tpl-> parse( "mains ", "main ");

//把分析结果mains存入main.html

$tpl-> savetofile( "main.html ", "mains ");

//置空

$tpl-> renew();//至关重要

?>

呵呵,是不是很简单,main.html就是我们要的内容。下面是一个结合数据库的例子,并用函数封装了起来。

<?php

//$aid是数据库中的文章id,$table是表名称,$template是模板地址,$tpl是template.inc的一个实例

//每一个aid对应一个静态网页地址,都存在一个数据表中

//表的结构类似于 aid target title

// 1 a1.html ….

// 2 a2.html ….

// 3 a3.html ….

function staticInfo($aid){

global $table,$template,$tpl;

//查询数据库

$res=mysql_query(“select * from $table where aid=’$aid’”);

//取出数据

$array=mysql_fetch_array($res);

//读静态网页地址,标题。

$target=$array[“target”];

$title=$array[“title”];

//分析模板

$tpl-> set_file(“main”,$template);

//把模板中的{title}变量换成$title

$itpl-> set_var(“title”,$title”);

//分析整个模板

$itpl-> set_var(“mains”,”main”);

//把mains写入文件

$tpl-> savetofile($target, "mains ");

//置空

$tpl-> renew();

}

?>

这样我们就可以用函数staticInfo()把我们想要处理的任一篇文章都生成静态网页。表$target里也可以包含文章内容,作者,来源等等,方法是一样的。

三,更新静态网页

一篇文章加入数据库后,由于一些原因我们总要修改一些文章。这时候,只要把相应的静态网页重新生成一次即可。这是非常方便的,因为表中已经有了静态网页的目标地址target字段。

可以看出关键所在,一篇文章生成静态网页的关键所在就是$template(模板地址),$target(目标地址)。前者,我们可以先确定,后者可以由你随心所欲的为每篇文章设置一个地址。常用的有1,时间戳 2,时分秒 3,根据文章id。因为这些重复的机会会非常小的。

四,批量生成静态网页.

有了单个文章生成的静态网页的函数了,那么批量生成是非常简单的。就是获取所有的文章aid,然后套入函数即可。

<?php

//引用模板类

require”template.inc”;

//引入函数

require”functions.php”;

//一些变量的定义

$table=”art”;

$template=”template/info.tpl”;

$tpl=new Template(“.”);

//连接mysql,选择数据库

mysql_connect(“localhost”,”root’,””);

mysql_select_db(“article”);

//发送查询语句

$res=mysql_query(“select aid from $table”);

while($r=mysql_fetch_array($res)){

$aid=$r[“aid”];

//生成静态网页

staticInfo($aid);

}

//结束

echo”所有静态网页更新/生成成功”;

?>

上面就是完整的例子。我们做cms的流程可以如下:

1,记者发稿(把稿件内容放入数据库)

2,编辑审查(如果他认为可以发布,那么就可以把这些内容生成静态网页)

3,退回稿件(把生成的静态网页删除,把数据库中的内容删除)

然后,我们访问到的网站内容就都是静态的了。一个问题就是,这种方法会不会占用很多空间内? 有上千篇文章了,只占用了20M空间。反过来说,如果你有10000篇文章的话,你不会吝啬到只买200M的空间吧?

或许你对生成静态的文章列表感到困惑,其实方法是一样的,就是 计算页码? 分析每个页码的内容 ? 写入文件。 分析每个页码的内容,当然是写个函数咯,如果你一页一页的生成,恐怕被人嘲笑 ^_^。

静态网页不仅仅是可以减轻服务器负担,提高访问速度,也可以方便地做镜像网站,方便地备份,减少被攻击损失程度,加快还原速度。当然静态网页也会给大家带来诸多不便的地方,你需要在动态和静态之间做出平衡,

也可以在静态网页中加入js调用的php代码,来达到计数,即时更新等目的。(完)

PHP网站如何纯静态化

纯静态网站在网站中是怎么实现的?

纯静态的制作技术是需要先把网站的页面总结出来,分为多少个样式,然后把这些页面做成模板,生成的时候需要先读取源文件然后生成独立的以.html结尾的页面文件,所以说纯静态网站需要更大的空间,不过其实需要的空间也不会大多少的,尤其是对于中小型企业网站来说,从技术上来讲,大型网站想要全站实现纯静态化是比较困难的,生成的时间也太过于长了。不过中小型网站还是做成纯静态的比较,这样做的优点是很多的。

而动态网站又是怎么进行静态处理的?

页面静态化是指将动态页面变成html/htm静态页面。动态页面一般由asp,php,jsp,.net等程序语言编写而成,非常便于管理。但是访问网页时还需要程序先处理一遍,所以导致访问速度相对较慢。而静态页面访问速度快,却又不便于管理。那么动态页面静态化即可以将两种页面的好处集中到一起。

php如何实现网页静态

一、静态化的优点:

1有利于搜索引擎收录网站页面的信息:搜索引擎更喜欢静态的,更变于抓取,搜索引擎SEO排名会更容易提高。

2静态网页化网页稳定

3可以提高网页加载速度

4减轻服务器负担,浏览器不需要频发调用数据库。

5数据库出错不会影响正常访问

二、伪静态

PHP伪静态:是利用Apache mod_rewite实现url重写的方法

改写访问地址,能够通过URL的PATHINFO模式来改动它。让它看上去更像一个静态页面。从而有更大的几率被搜索引擎抓取和收录,仅是对搜索引擎比较友好,伪静态化

三、纯静态化

纯静态化,就是生成HTML文件的方式,我们须要开启PHP自带的缓存机制,即ob_start来开启缓存。而且在ob_start之前不能有不论什么输出,否则运行失败,然后我们用ob_get_contents函数来获取缓存中的内容,该函数会返回一个字符串。第三个函数就是ob_end_clean,它用来清空缓存中的内容而且关闭,成功返回True,失败返回False。

<?php

if(file_exists("match.html") (time()-filemtime("match.html"))<300)

{

//如果存在对应的静态文件,则直接访问

require_once("match.html");

}else{

//这里用数组来仿真数据库操作,现实一般都是操作数据库得到对应数据

$student = array("huangxing","chenyuwei",'xufei','zhangjingwen','xuepei');

ob_start();

//载入模板

require_once("muban.php");

file_put_contents("match.html",ob_get_clean());

require_once('match.html');

}

关于php静态化博客的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php静态化博客 php静态变量的含义的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did198334
更新时间:2023-04-26   阅读:19次

上一篇: php腾讯云短信接口 腾讯云短信服务

下一篇:php分隔为数组 php对数据进行分组

相关资讯

最新资料更新

  • 1.mac安装php扩展 mac系统安装php环境
  • 2.php代码太长换行 php换行符号
  • 3.包含phpgabage的词条
  • 4.php队列和缓存 php中的九大缓存技术
  • 5.php大牛交流教程 php大神
  • 6.phpflv播放器 php视频播放
  • 7.php内存监控视频 视频监控内存计算
  • 8.PHP版本在哪调 phpversion
  • 9.php实现权限分配 php权限设计
  • 10.php解压gz效率 rarphp文件怎么解压
  • 11.php自学教程推荐 php入门课程
  • 12.php项目基本流程 php项目如何运行
  • 13.php代码调用js php调用java代码
  • 14.php可代替js吗 php可以代替js吗
  • 15.php消息通知实例的简单介绍
  • 16.php在线做点兼职 php在线做点兼职是真的吗
  • 17.php缓存框架 php 缓存
  • 18.php链接数据库创建表格 php连接数据库的方法
  • 19.phpmywind phpmywind去重复
  • 20.php短信android Php短信对接视频

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]