第一段:静态化的优点:
①.有利于搜索引擎收录网站页面的信息:搜索引擎更喜欢静态的,更变于抓取,搜索引擎SEO排名会更容易提高.
第二段:伪静态
PHP伪静态:是利用Apache mod_rewite实现url重写的方法
改写访问地址,能够通过URL的PATHINFO模式来改动它.让它看上去更像一个静态页面.从而有更大的几率被搜索引擎抓取和收录,仅是对搜索引擎比较友好,伪静态化
第三段:纯静态化
纯静态化,就是生成HTML文件的方式,我们须要开启PHP自带的缓存机制,即ob_start来开启缓存.而且在ob_start之前不能有不论什么输出,否则运行失败,然后我们用ob_get_contents函数来获取缓存中的内容,该函数会返回一个字符串.第三个函数就是ob_end_clean,它用来清空缓存中的内容而且关闭,成功返回True,失败返回False.
php
{
//如果存在对应的静态文件,则直接访问
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');
}
这么搞一定不行的..种要有个区别开来的东西!!!那有那么智能啊!
如果用cakephp就更加好了!
下面是引用别人的!!很容易实现的!!我们都是用cakephp框架开发的!
PHP伪静态写法--其一
伪静态又名:URL重写
主要是为了SEO而生的.(SEO是什么?这个不用问我吧.呵呵~搞网络的不懂SEO那就~~~~)
方法一:
比如这个网页
真静态只是完全生成了HTML.
当然在你网站的流量没有那么大的时候.URL重写是最好的方法(个人观点,大流量的时候可以考虑负载均衡了.同样没有关系)
附URL重写的方法有很多种,APACHE,IISREWRITE.甚至PHP脚本都可以直接处理.比如上例中就是PHP脚本直接处理(该方法好处是大流量的时候直接减轻WEB伺服器的压力.PS:同样也是个人观点:
================================================
下面以程序为例讲一下PHP伪静态的程序实现方法,其实这方法我之前已经有在其它论坛社区发过
程序为例:
CODE:
if(@$path_info =$_SERVER["PATH_INFO"]){
//正则匹配一下参数
if(preg_match("/\/(\d◆),(\d◆),(\d◆)\.html/si",$path_info,$arr_path)){
$gid =intval($arr_path[1]); //取得值 1
}else die("Path:Error!");
//就是这么简单了.~)
方法二:
一 打开 Apache 的配置文件 httpd.conf .
二 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉
三 在 httpd.conf中添加:
IfModule mod_rewrite.c
RewriteEngine On
/IfModule
四 要实现asp帖子URL到php帖子的映射,在 第三步的IfModule mod_rewrite.c和/IfModule之间添加:
RewriteMap tolowercase int:tolower
RewriteCond %{QUERY_STRING} (?:boardid|page|id|replyid|star|skin)=d◆ [NC]
RewriteRule ^(.*(?:index|dispbbs)).asp 1.php?{tolowercase:%{QUERY_STRING}}__is_apache_rewrite=1
五 保存httpd.conf并重启Apache
方法三:
/*
功能:PHP伪静态化页面的实现
具体用法:
mod_rewrite();
$action=$_GET["action"];//结果为'_add'
*/
function mod_rewrite(){
global $_GET;
$nav=$_SERVER["REQUEST_URI"];
$script_name=$_SERVER["SCRIPT_NAME"];
$nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1);
$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//这句是去掉尾部的.html或.htm
$vars = explode("/",$nav);
$_GET["$vars[$i]"]=$vars[$i◆1];
return $_GET;
echo $yearn;
echo $action;
举个例子:你在浏览器地址栏里输入 http://域名/index.php/a/b/c/d.html
伪静态实现方式两种:
① web服务器上设置.html或者.htm等后缀的页面也通过PHP来处理即可,比如Nginx或者Apache,都有这样的配置文件,设置PHP处理的文件后缀类型,这样前台请求的htm文件,实际上是PHP代码
真正的静态实现:
一种是利用模板技术,另一种是用ob系列函数.两种方法,看起来都差不多,但是实际上,却是不同的.
第一种:利用模板目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smart
template等.
它们每一种模板,都有一个获取输出内容的函数.
我们生成静态页面的方法,就是利用了这个函数.
用这个方法的优点是,代码比较清晰,可读性好.
$t
=
new
Smarty;
$t-assign("title","Hello
World!");
$content
$t-fetch("templates/index.htm");
//这里的
fetch()
就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp
"w");
fwrite($fp,
$content);
fclose($fp);?第二种方法:利用ob系列的函数这里用到的函数主要是
ob_start(),
ob_end_flush(),
ob_get_content(),
其中ob_start()是打开浏览器缓冲区的意思,
打开缓冲后,所有来自PHP程序的非文件头信息均不会发送,
而是保存在内部缓冲区,直到你使用了ob_end_flush().
而这里最重要的一个函数,就是ob_get_contents(),
这个函数的作用是获取缓冲区的内容,相当于上面的那个fetch(),
道理一样的.代码:
①.、实现伪静态方法:
①.)隐藏入口文件:
上面三个都用上,基本都OK了!当然,还可以通过服务器重写URL
①.)每个文件夹添加一个index.html空文件(因服务器默认的首页而异同),假如默认首页是 index.html 那就 添加index.html
以上就是土嘎嘎小编为大家整理的php伪静态页面函数附使用方法相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!