php静态化如何实现(php静态化如何实现数据分析)

2023-03-08 21:58:19 5 0
卡卡

导读:很多朋友问到关于php静态化如何实现的相关问题,本文恰卡编程网就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

本文目录一览:

php静态化如何实现(php静态化如何实现数据分析)

  • 1、PHP网站如何纯静态化
  • 2、php静态化页面方法,伪静态的也可以
  • 3、ThinkPHP3.2 的页面静态化功能的实现

PHP网站如何纯静态化

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

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

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

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

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

PHP伪静态写法--其一

伪静态又名: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;

?

ThinkPHP3.2 的页面静态化功能的实现

(1)在根目录下的程序入口文件index.php中加下面这行:

define('HTML_PATH','./HTML/');//生成静态页面的文件位置  (nginx服务器报错时注释此行,默认地址为runtime目录平层的Html)

(2)在项目的配置文件config.php中进行如下配置:

'HTML_CACHE_ON'=true,// 开启静态缓存

'HTML_CACHE_TIME'=604800,// 全局静态缓存有效期(秒)(3600*24*7)

'HTML_FILE_SUFFIX'='.shtml',// 设置静态缓存文件后缀

'HTML_CACHE_RULES'=array(// 定义静态缓存规则

// 定义格式1 数组方式

// 定义格式2 字符串方式

//后一个参数是静态缓存有效期,单位为秒。如果不定义,则会获取配置参数HTML_CACHE_TIME 的设置值,如果定义为0则表示永久缓存。

//{id} 表示取$_GET['id']

'CondVoucher:conGuid' =array('{:controller}_{:action}/conGuid'),

(3)访问url生成缓存到html目录下查看缓存文件

参照手册:

结语:以上就是恰卡编程网为大家整理的关于php静态化如何实现的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

收藏
分享
海报
0 条评论
5
上一篇:php怎么混合开发app(2023年最新整理) 下一篇:php视频文件是什么(2023年最新解答)

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码