现在很多网站都是重写生成html
这样可以显示为静态样子,但是还是可以根据页面时间判断是否最新的
还有原来一般网站都是使用缓存,减轻服务器读写但是都不兼顾两者,那么今天我们使用queryphp框架可以实现两者都可以兼顾到queryphp自动生成html特点
1.使用apache重写方式,去掉index.php文件,使用网站看起来是静态样子
  如:http://www.app.com/project/html/curd/index/page/2.html
     http://www.app.com/curd/index/page/2.html
     http://www.app.com/curd/index/5552.html
     http://www.app.com/html/curd/index/5552.html
     http://www.app.com/curd/5552.html
   等样子。
2.生成HTML不用一次全部生成,只要访问到就生成,生成后地址不变。
  原来网站地址是什么就是什么
  比如:http://www.app.com/curd/5552.html
  那么使用我们pathinfo规则会把curd/5552.html转为curd 控制器 和 index方法 id为5552
  如果有内容 那么就在网站目录下面curd目录创建5552.html 如果没有可以设置不会生成
3.可以把生成HTML文件都放一个目录里面,当更新时候直接删除就可以了。如果空间足够不用删除
  直接把目录改名就可以了。这样不会造成很大IO问题。
  当然可以选择删除部分内容。因为有些文件可以永久保存不用更改
  比如:http://www.app.com/html/curd/index/5552.html
  直接会在html目录里面创建文件,当apache能读取到文件时候会直接读取,不会更过apache解析
  这样可以成百成千倍提高访问速度。直接减少服务器数量,减轻公司企业成本,
  也可以说queryphp最省钱的框架
4.可以多个项目分隔,每个项目生成html互不干扰比如project项目,也可以在project下面建产子项目
  如:http://www.app.com/project/html/curd/index/page/2.html
  这样可以每个栏目或每个频道都独立分开,又可以重用公共代码。
5.每个Router可以自定义生成html方式
  详见:controller.php  文件 function view_filter($content) 方法6.可以自由切换是否静态或动态。如果不想生成HTML内容,也可以,这样可以保留apache重写.html结尾
  当然也可以去掉.html结尾,对程序一点没有影响。也不用修改代码。  /*
 *网站静态化开始,可以做seo优化
 **/
 $config['html']='.html';//开启.html结尾url
 $config['realhtml']="/html"; //开启超级缓存目录,如果第一次访问没有html页面自动产生html页面,第二次访问时候就是静态化了
 $config['htmlcache']=array("class"=>"sitehtml","method"=>"realhtml"); //生成html文件类和方法,不设置将不会生成html页面, 传入参数为$content,$pathinfo;
 /*
 *网站静态化结束
**/ 当$config['realhtml']="/html"; 为空时候生成html方式是
  http://www.app.com/curd/index/5552.html
  这样不会有html目录了。当然内容模块少不要紧
 
  $config['htmlcache']为空的时候不会生成html,只使用apache重写
  $config['html']='.html';为空的时候不会生成html地址怎么样就怎么样。url_for()智能函数,自动会根所当然环境返回/curd/index/5552.html方式还是/curd/index/5552样子
url_for("curd/index/5552");如果是静态方式会返回/curd/index/5552.html
如果是动态方式返回/curd/index/5552
程序中有一些提交地址不能为动态,那么怎么办
url_for("curd/index/5552",true);不会返回/curd/index/5552.html或/html/curd/index/5552.html
直接返回/curd/index/5552
下面是模板一个例子:
<ul>
<li><a href="<?php echo url_for("curd/create")?>">添加新记录</a></li>
<li><a href="<?php echo url_for("curd/index")?>">数据列表</a></li>
</ul>
<form id="form1" name="form1" method="post" action="<?php echo url_for("curd/createForm",true);?>">form提交永远是动态的
其它教程请看queryphp框架发布新版 自动生成html 添加分页类 图片处理类
http://topic.csdn.net/u/20100329/14/889b2109-214e-4a20-8f85-c7c0b2e9e053.htmlqueryphp框架教程三 做SEO优化 以.html结尾去除index.php
http://topic.csdn.net/u/20100310/11/5ed7a31c-8642-40dd-82b2-a4928568e8a3.html40多K PHP实现 ORM 数据库类 教程二 CRUD操作
http://topic.csdn.net/u/20100228/22/3bea834b-efc0-4aa0-af4a-a4923af8b60c.html40多K PHP实现 ORM 数据库类
http://topic.csdn.net/u/20100226/12/43bf3dc5-795f-4fa5-861a-2f7bf8fd0cd6.html

解决方案 »

  1.   

    最新0.9.8.1版下载
    http://code.google.com/p/queryphp/downloads/list
      

  2.   

    我自己也在使用,目前已经解决了多年来一个生成html问题
      

  3.   

    我目前刚开始学php
    还用不到
    有能力了在来看看
    呵呵
      

  4.   

    花了两个多小时制了了chm帮助文档queryphp框架使用手册.chmhttp://code.google.com/p/queryphp/downloads/list
      

  5.   

    queryphp框架使用手冊.chm 解除鎖定後仍無法瀏覽到內容(此程式無法顯示網頁)
      

  6.   

    成百成千倍提高访问速度未必吧?如果数据库记录多了,生成的html也一样的多,IO也会有瓶颈,数据库和程序方面的调优意义也许会大于生成html的解决方案,而且适用更加广泛。
    本身磁盘就是由很多的datablock组成,查询过程也需要时间的,如果目录组织不当,磁盘读写次数频繁,还面临磁盘早坏的结果