文档章节

php页面静态化

just_wkj
 just_wkj
发布于 2016/01/02 15:04
字数 604
阅读 116
收藏 13
点赞 0
评论 0

网站一直在加载,很慢,处理方式多种;

    0.页面静态化;

    1.优化数据库;

    2.负载均衡;

    3.使用缓存技术


关于页面静态化

    使用函数如 file_put_contents($filename,$string);

    php的输出缓冲区  开启 5.3以后默认开启 output_bufferingon 

    没开启的话可以用 函数在页面开始  ob_start();

    eg:    

ob_start();
...//引文所需静态化的文件
file_put_contents('index.html',ob_get_contents());
ob_clean();


ob_start();
file_put_contents('index.html',ob_get_clean());

//注意ob_start() 无论php.ini 有没有开启 output_buffering 设置,
//最还都要开启,即使已经为on ,也是开辟新的输出缓冲区

关于如何触发系统生成纯静态页面

    方式有三种:

    0.页面添加缓存时间

        用户访问如index.php 判断index.html的修改时间 如当前时间差值 若大于设定的数值学访问index.php否则访问静态页面

 if(is_file('./index.html')&&time()-filemtime('./index.html')<300){
     require './index.html';
 }else{
     ob_start();
     ......
    file_put_contents('./index.html',ob_get_contents());
 }

    1.手动触发

        同上不需要判断

    2.定时任务 crontab  

    定时任务前几天转载了一篇博客关于linux定时任务的

    http://my.oschina.net/u/2411815/blog/550833



局部静态化

    

<script>
	$.ajax({
		url:'xxx.php',
		type:'get',
		dataType:'json',
		error:function(){
		},
		success:function(result){
			if(result.code==1){
				html='';
				$.each(result.data,function(key,value){
					html+='<li>'+value.title+'</li>'
				})
				$("#hot_html").html(html);
			}else{
				//todo
			}
		},
	})
</script>

    

    伪静态

<?php
/**
* 利用PHP正则表达式来处理伪静态
* 以http://static.com/newsList.php?type=2&category_id=1 =>  http://static.com/newsList.php/2/1.shtml
*/
//echo 12;
var_dump($_SERVER);

if(isset($_SERVER['PATH_INFO'])) {
	// 解析 /2/1.shtml 匹配pathinfo值,如果没匹配到则数据不合法,若匹配到做相应处理
	if(preg_match("/^\/(\d+)\/(\d+)(\.shtml)$/", $_SERVER['PATH_INFO'], $pathInfo)) {
		//var_dump($pathInfo);
		$type = $pathInfo[1]; // 类型值
		$categoryId = $pathInfo[2]; // 所在栏目值
		// 引入数据库链接类
		require_once('./db.php'); 
		$sql = "select * from news where `category_id` = ".$categoryId." and `type` = ".$type." order by id desc";
		try{
			$db = Db::getInstance()->connect();
			$result = mysql_query($sql, $db);
			$newsList = array();
			while($row = mysql_fetch_assoc($result)) {
				$newsList[] = $row;
			}
			var_dump($newsList);
			exit;
		}catch(Exception $e) {
			// TODO
		}
	} else {
		// TODO
		die('url error!');
	}
} else {
	// TODO
	// 错误提示,然后跳转到首页处理
	die('地址有误');
}

    路由重写

        apache 开启重写模块

        http.conf 中修改

            LoadModule rewrite_module modules/mod_rewrite.so

            Include conf/extra/httpd-vhosts.conf

        在httpd-vhosts.conf中设置

<VirtualHost 127.0.0.19:80>
    ServerName www.study.com
    DocumentRoot "C:/wamp/www/study"
    <Directory "C:/wamp/www/study">
        Options Indexes
        Order deny,allow
        allow from all
    </Directory>
    #下面是重写时候若遇到目录文件下有该文件则显示文件
    RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
    #下面是重写规则    //nignx重写类似
    RewriteRule ^/detail/([0-9]*).html$ /detail.php?id=$1
</VirtualHost>


        

© 著作权归作者所有

共有 人打赏支持
just_wkj

just_wkj

粉丝 2
博文 58
码字总数 14996
作品 0
南京
程序员
PHP生成静态页面的方法

在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板、缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP...

v_desigen ⋅ 2012/04/25 ⋅ 0

小蚂蚁学习页面静态化(1)——静态化的原理

关于页面php文件执行阶段 语法分析——》编译——》运行 如何优化页面的响应时间 动态页面静态化 优化数据库 使用负载均衡 使用缓存 页面静态化能够解决的问题 1.减少服务器脚本的计算时间 ...

嗜学如命的小蚂蚁 ⋅ 2015/10/09 ⋅ 2

(PHP学习笔记)实现页面静态化

当我们在访问各个门户信息网站时,主页都会给我们显示各种头条、导航信息(例如新闻网)。我们可以想象,面对众多的数据库访问等操作,在我们访问这些网页的同时加载速度将会变得很慢。众所周...

w1sw ⋅ 2016/08/15 ⋅ 0

静态HTML页面的访问量统计实现

摘要:第一步处理的就是文章页面的静态化,静态化之后,发现访问量统计成了一个问题。大家都知道的,静态页面的程序本身是不能调用数据库来实现当前页面访问量统计的,包括实现被访问次数、访...

魏邪乎 ⋅ 2014/07/21 ⋅ 1

PHP页面纯静态化与伪静态化

在很多地方都看到有PHP整站静态化的东东,怪唬人的。。其实,你会静态化一个页面,那么别说整站了,想静态化多少都可以。所以关键是,首先要知道怎么静态化一个页面,了解静态化的原理是关键...

Corwien ⋅ 2016/04/15 ⋅ 0

php中实现URL静态化

URL 静态化是一个利于搜索引擎的设置,通过 URL 静态化,达到原来是动态的 PHP 页面转换为静态化的 HTML 页面, 当然,这里的静态化是一种假静态,目的只是提高搜索引擎的搜索量 Apache 服务...

拜仁慕尼黑 ⋅ 2014/01/08 ⋅ 2

Discuz! X2 下 URL 静态化的实现方法

在后台 => 全局 => SEO设置=> URL 静态化,开启各个页面的静态化后,在站点界面上,可以看到所有的链接都变成静态地址格式。下面我们看一下这个过程是怎么实现的。(以主题列表页为例) 众所...

啊和 ⋅ 2012/07/27 ⋅ 0

如何实现部分静态发布

目前我采用php + smarty来实现网站页面的静态化。 我的模版结构是有个base.html里面通过include分别加入了header、banner、footer等页面公共模块和详细页面的模块。 通过通用的页面的静态化方...

__FresHmaN ⋅ 2013/10/13 ⋅ 2

构架高性能WEB网站的几点知识

前言: 对于构架高性能的web网站大家都很感兴趣,本文从几点粗谈高性能web网站需要考虑的问题。 HTML静态化 什么是html静态化? 说得简单点,就是把所有不是.htm或者.html的页面改为.htm或者...

吞吞吐吐的 ⋅ 2017/10/11 ⋅ 0

php 静态页面化

目前网络上好多网站的新闻发布系统都采用了动态服务器技术生成静态HTML的做法,这样做的好处是:一是能减轻其服务器的负担,二是因为生成了HTML静 态页面,所以其网站被搜索引擎搜索到的机率...

eatnothing ⋅ 2015/06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部