本文目录一览:
如何在应用PHP代码编写伪静态
以nginx为例,下面是一种解决方案:
1、在nginx配置文件中加上如下配置:
123if (!-f $request_filename) { rewrite ^/static/([^\.]*)\.html$ /dynamic/proc.php?file=$1 last;}
这样,当客户端访问的静态文件 /static/xxxx.html不存在时,就会自动访问
/dynamic/proc.php.
2、在/dynamic/proc.php中,经过相应的处理后,生成页面内容,既返回给客户端,同时也保存为文件 /static/xxxx.html
3、客户端再次访问
/static/xxxx.html时,因为此时文件已经存在,nginx就会直接返回页面,不用再访问php处理了。
4、后台做一个定时器(或者其他触发机制),定期删除已经过期的静态文件。
PHP伪静态写法附代码
比如这个网页
其实处理的脚本是soft.php 参数为1,100,8630
相当于soft.php?a=1b=1=100c=8630 只不过这样的URL太难记。搜索引擎也不喜欢。
真静态只是完全生成了HTML。
客户端访问的时候直接输出。不用脚本解释。在流量非常大的时候(比如每天有上百万的访问量的时候)会起到很好的效果。也就是说服务器端实实在在的存在这个HTML页面。
当然在你网站的流量没有那么大的时候。URL重写是最好的方法(个人观点,大流量的时候可以考虑负载均衡了。同样没有关系)
附URL重写的方法有很多种,APACHE,IISREWRITE。甚至PHP脚本都可以直接处理。比如上例中就是PHP脚本直接处理(该方法好处是大流量的时候直接减轻WEB伺服器的压力。PS:同样也是个人观点:
================================================
下面以程序为例讲一下PHP伪静态的程序实现方法,其实这方法我之前已经有在其它论坛社区发过
程序为例:
复制代码
代码如下:
?php
//利用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
}else die('Path:Nothing!');
//就是这么简单了。~)
PHP代码伪静态怎么写?
代码中链接地址改成:href=show-".$row['itemid'].“.html”;
然后添加伪静态规则:RewriteRule ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2page=$4
高分求:php 程序实现伪静态
看下面的例子:
程序为例:
复制代码 代码如下:
?php
//利用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
}else die('Path:Nothing!');
//就是这么简单了。~)
方法2类似:
php支持文件后面直接加上/,而且还是访问源文件,所以很容易就实现了php伪静态
关键词:php ,php伪静态, php伪静态,php实现伪静态
?php
echo "返回数组参数";
function change_url_canshu($url)
{
$url=str_replace("/","",$url);
$temp_str=str_replace(".html","",$url);
return $temp_str;
}
echo change_url_canshu($_SERVER['QUERY_STRING']);//这就是或得出来的参数
?
上面的代码保存为index.php
然后运行 index.php/1.html将获取参数1
运行index.php/1-2-3.html 将获取参数1-2-3
然后通过获取来的参数进行数据查询即可,这就是php伪静态实现的方法