这里跟普通模式下的移动端同步PC端生成文件有点区别,就是在有人访问的情况下才会生成静态文件,如果没有人访问的话,就不需要生成,类似于缓存功能。节省磁盘空间,缓解服务器压力。
首先先做一个伪静态,将你的静态文件映射下:
rewrite /n/(.*)/(.*).html$ /e/extend/chml.php?classid=$1&id=$2
其目录根据自己的需要来进行修改。
然后创建一个PHP文件,名字就叫上面起的:chml.php,目录存放在/e/extend/下面
折叠PHP 代码
- <?php
 - require('../class/connect.php'); //引入数据库配置文件和公共函数文件
 - require('../class/db_sql.php'); //引入数据库操作文件
 - require("../class/functions.php");
 - require("../class/t_functions.php");
 - require("../data/dbcache/class.php");
 - require("../data/dbcache/MemberLevel.php");
 - require('../class/chtmlfun.php');
 - $link=db_connect(); //连接MYSQL
 - $empire=new mysqlquery(); //声明数据库操作类
 - ReSingleInfo2('35','mobile');//你的帝国后台 id 和 用户名
 - //生成单信息
 - function ReSingleInfo2($userid,$username){
 - global $empire,$public_r,$class_r,$dbtbpre;
 - if($_GET['classid'])
 - {
 - $id=$_GET['id'];
 - }
 - else
 - {
 - $id=$_POST['id'];
 - }
 - $fr=$empire->fetch1("select classid from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where id=$id");
 - $classid=$fr[classid];
 - if(emptyempty($classid))
 - {
 - printerror('ErrorUrl','history.go(-1)');
 - }
 - $count=count($id);
 - if(emptyempty($count))
 - {
 - printerror("NotReInfoid","history.go(-1)");
 - }
 - for($i=0;$i<$count;$i++)
 - {
 - $id[$i]=intval($id[$i]);
 - $add.="id='$id[$i]' or ";
 - }
 - $add="id=$id";
 - $sql=$empire->query("select * from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add);
 - while($r=$empire->fetch($sql))
 - {
 - GetHtml($r['classid'],$r['id'],$r,1);//生成信息文件
 - }
 - $filepath='/e/action/ShowInfo.php?classid='.$classid.'&id='.$id;
 - header("Location: ".$filepath); //加载文件
 - }
 - db_close(); //关闭MYSQL链接
 - $empire=null; //注消操作类变量
 - ?>
 
这样当你第一次访问移动端的文件的时候,他会自动生成一个对应PC端的文件,以后访问就不需要了。当然,不仅仅是这一个用法哦,这个生成的文件你还可以当缓存来用,你可以定时清理这些文件,不像普通的同步生成,你删掉了,就打不开了,不然就是404~

