成都网站建设设计

将想法与焦点和您一起共享

php数据静态显示 php静态页面隐藏

php静态化页面方法,伪静态的也可以

PHP伪静态写法--其一

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、江达网络推广、小程序开发、江达网络营销、江达企业策划、江达品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供江达建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

伪静态又名:URL重写

主要是为了SEO而生的。(SEO是什么?这个不用问我吧。呵呵~搞网络的不懂SEO那就~~~~)

方法一:

比如这个网页

/soft.php/1,100,8630.html

其实处理的脚本是soft.php 参数为1,100,8630

相当于soft.php?a=1b=1=100c=8630 只不过这样的URL太难记。搜索引擎也不喜欢。

真静态只是完全生成了HTML。

客户端访问的时候直接输出。不用脚本解释。在流量非常大的时候(比如每天有上百万的访问量的时候)会起到很好的效果。也就是说服务器端实实在在的存在这个HTML页面。

当然在你网站的流量没有那么大的时候。URL重写是最好的方法(个人观点,大流量的时候可以考虑负载均衡了。同样没有关系)

附URL重写的方法有很多种,APACHE,IISREWRITE。甚至PHP脚本都可以直接处理。比如上例中就是PHP脚本直接处理(该方法好处是大流量的时候直接减轻WEB伺服器的压力。PS:同样也是个人观点:

================================================

下面以程序为例讲一下PHP伪静态的程序实现方法,其实这方法我之前已经有在其它论坛社区发过

程序为例:

/soft.php/1,100,8630.html

CODE:

//利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html 也就是执行脚本名后面的部分

if(@$path_info =$_SERVER["PATH_INFO"]){

//正则匹配一下参数

if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){

$gid =intval($arr_path[1]); //取得值 1

$sid =intval($arr_path[2]); //取得值100

$softid =intval($arr_path[3]); //取得值8630

}else die("Path:Error!");

//相当于soft.php?gid=1sid=100softid=8630

//就是这么简单了。~)

方法二:

一 打开 Apache 的配置文件 httpd.conf 。

二 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉

三 在 httpd.conf中添加:

IfModule mod_rewrite.c

RewriteEngine On

#RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+.html

RewriteRule ^(.*?(?:index|dispbbs))-([-0-9]+).html 1.php?__is_apache_rewrite=1__rewrite_arg=2

/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

/*

功能:PHP伪静态化页面的实现

具体用法:

例如链接为:test.php/year/2006/action/_add.html

mod_rewrite();

$yearn=$_GET["year"];//结果为'2006'

$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);

for($i=0;$iCount($vars);$i+=2){

$_GET["$vars[$i]"]=$vars[$i+1];

}

return $_GET;

}

mod_rewrite();

$yearn=$_GET["year"];//结果为'2006'

$action=$_GET["action"];//结果为'_add'

echo $yearn;

echo $action;

?

?php

/*

功能:PHP伪静态化页面的实现

具体用法:

例如链接为:test.php/year/2006/action/_add.html

mod_rewrite();

$yearn=$_GET["year"];//结果为'2006'

$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);

for($i=0;$iCount($vars);$i+=2){

$_GET["$vars[$i]"]=$vars[$i+1];

}

return $_GET;

}

mod_rewrite();

$yearn=$_GET["year"];//结果为'2006'

$action=$_GET["action"];//结果为'_add'

echo $yearn;

echo $action;

?

如何用PHP输出静态页面

用PHP输出静态页面有2种方法

一种是利用模板技术,另一种是用ob系列函数。两种方法,看起来都差不多,但是实际上,却是不同的。

第一种:利用模板

目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smart template等。

它们每一种模板,都有一个获取输出内容的函数。

我们生成静态页面的方法,就是利用了这个函数。

用这个方法的优点是,代码比较清晰,可读性好。

这里我用smarty做例子,说明如何生成静态页

?php

require('smarty/Smarty.class.php');

$t = new Smarty;

$t-assign("title","Hello World!");

$content = $t-fetch("templates/index.htm");

//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了

$fp = fopen("archives/2005/05/19/0001.html", "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(),

道理一样的。代码:

?php

ob_start();

echo "Hello World!";

$content = ob_get_contents();//取得php页面输出的全部内容

$fp = fopen("0001.html", "w");

fwrite($fp, $content);

fclose($fp);

?

php静态页面怎么做?详细点

确实有点笼统。不过我可以跟楼主大概说一下思路 一般的生成静态页面的方法就先制作一个静态模板,在里面需要动态改变的东西用特殊的代码标记,然后再用PHP将标记替换后生成文件进行保存。 比如:body div{:This is the content:}/div /body 这个里面的{:This is the content:}就是一个特殊的标记。我们设这段代码在a.html文件中,我们用PHP将他读入,?php $b='这里是内容,可以从数据库读取,或者从其他途径获得'; $fp=fopen('a.html','r'); $content=fread($fp,filesize('a.html')); fclose($fp); $content=str_replace('{:This is the content:}',$b,$content);(额。。这个函数参数顺序记不太清楚了) $fp1=fopen('b.html','w'); fwrite($fp,$content); fclose($fp); ? 这样我们就得到了b.html这个文件,就是一个静态的文件,里面的代码如下: body div这里是内容,可以从数据库读取,或者从其他途径获得/div /body 这样说,楼主明白了吧? 其实一般的网站是不需要生成这样的静态页面的,流量低的网站命中率也就低了,而且更新起来非常麻烦。这就需要用到一些其他的技术的。比如SSI啊,比如只保存数据库查询结果啊。什么的


文章题目:php数据静态显示 php静态页面隐藏
本文URL:http://chengdu.cdxwcx.cn/article/hijdje.html