PHP网站页面静态化

页面静态化的分类:

1,按照形式:两者的区别在于PHP生成静态页面的处理机制不同。

1)真静态

2)伪静态,就是url 重写

2,按照范围:

1)局部静态话(jquery,ajax)

2)全部静态化

在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板、缓存等实现页面静态化。

PHP生成静态HTML页面的方法

1、利用PHP模板生成静态页面

PHP模板实现静态化非常方便,比如安装和使用PHP Smarty实现网站静态化。

2、使用PHP文件读写功能生成静态页面

PHP生成静态页面实例代码

1.	<?php 
2.	$out1 = "<html><head><title>PHP网站静态化教程</title></head>  
3.	<body>欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法  
4.	</body></html>";   
5.	 $fp = fopen("leapsoulcn.html","w");    
6.	if(!$fp)    
7.	{    
8.	echo "System Error";    
9.	exit();    
10.	}    
11.	else {    
12.	fwrite($fp,$out1);    
13.	fclose($fp);    
14.	echo "Success";    
15.	}    
16.	?>  

3、使用PHP输出控制函数(Output Control)生成静态页面

输出控制函数(Output Control)也就是使用和控制缓存来生成静态HTML页面,也会使用到PHP文件读写函数。

PHP生成静态页面实例代码

1.	<?php  
2.	ob_start();  
3.	echo "<html>".  
4.	"<head>".  
5.	"<title>PHP网站静态化教程</title>".  
6.	"</head>".  
7.	"<body>欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法</body>".  
8.	"</html>";  
9.	 
10.	$out1 = ob_get_contents();  
11.	ob_end_clean();  
12.	$fp = fopen("leapsoulcn.html","w");  
13.	if(!$fp)  
14.	{  
15.	echo "System Error";  
16.	exit();  
17.	}  
18.	else 
19.	{  
20.	fwrite($fp,$out1);  
21.	fclose($fp);  
22.	echo "Success";  
23.	}  
24.	?> 

实例如下

<?php
	//首先查看缓存文件
	if(file_exists("static.html")){
		//缓存时间为3分钟
		if(time()-filemtime("static.html")<60*3){
			//将静态文件内容返回给客户端
			$start_time = microtime();
			echo "我是从静态文件中读取的数据:"."<br/>";
			echo file_get_contents("static.html");
			$end_time   = microtime();
			echo "静态文件使用时间:".($end_time-$start_time);
			exit;
		}
	}
	//如果是首次访问,或者是上次缓存的时间超过3分钟,则从数据库中读取数据
	$host     = "127.0.0.1";
	$user     = "root";
	$password = "123456";
	//记录开始时间
	$start_time = microtime();
	mysql_connect($host,$user,$password);
	mysql_select_db("mydb");
	mysql_query("set names utf8");
	
	$sql 		= "SELECT name,address,email FROM users";
	$resource 	= mysql_query($sql);
	echo "我是从数据库中读取的数据:<br/>";
	ob_start();//打开输出缓冲
	echo "<table border='1'><tr><th>姓名</th><th>地址</th><th>Email</th></tr>";
	//输出取得的信息
	while($userInfo = mysql_fetch_assoc($resource)){
		echo "<tr>";
		echo "<td>".$userInfo['name']."</td>";
		echo "<td>".$userInfo['address']."</td>";
		echo "<td>".$userInfo['email']."</td>";
		echo "</tr>";
	}
	$end_time=microtime();
	$str=ob_get_contents();//获取缓冲区的内容
	ob_end_flush();
	echo "从数据库读数据的时间:".($end_time-$start_time);
	file_put_contents("static.html",$str);
?>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值