TP实现伪静态页面生成

方法一
  这个实现其实蛮简单,只不过官网上的手册写得不是很详细。
  首先你在入口文件中定义你生成html页面的路径常量HTML_PATH,一般路径都定义在根目录,比较直观。把手册上写得代码copy到你要生成页面的应用项目的配置文件中,只要写静态缓存规则就行。比如你要生成关于我们页面,你的规则可以这样写
'HTML_CACHE_ON'     =>    true, // 开启静态缓存
'HTML_CACHE_TIME'   =>    60,   // 全局静态缓存有效期(秒)
'HTML_FILE_SUFFIX'  =>    '.shtml', // 设置静态缓存文件后缀
'HTML_CACHE_RULES'  =>     array(  // 定义静态缓存规则
'About'    =>     array('/About/index.html')
  当你访问关于我们页面的时候,就会生成这个页面的纯html页面,当你这个页面更新数据的时候,隔60秒后,前台页面就会自动重新写入,因为缓存有效期设置的60秒,你也可以设置永久有效,这样的话不会每隔60秒重新写入一次,浪费性能。设置永久有效的话,你更新数据前台是不会更新的,这个时候你只要删除缓存就行了,缓存就是这个生成的页面文件,将其删除。或者你在后台写个一键更新缓存等都可以,这种缓存访问页面速度是非常可观的。而且还能脱离程序运行,不怕程序发生意外报错情况。
  方法二
ob_start(); //打开缓冲区
$data = ob_get_contents(); //获取缓冲区的内容
ob_end_clean(); //关闭缓冲
$fp = fopen("/index.html","w"); //将内容写入文件
if(!$fp)
{
echo "文件无权限";
exit();
}
else
{
fwrite($fp,$data);
fclose($fp);
echo "生成成功";
}
  这代码写在前台相应的控制器中,会自动生成html页面。

最新内容请见作者的GitHub页:http://qaseven.github.io/
### 如何在PHPStudy中启动ThinkPHP项目 #### 启动ThinkPHP项目的步骤 为了在PHPStudy环境中顺利运行ThinkPHP项目,需确认几个关键设置: - **服务器环境准备**:确保已正确安装并配置好PHPStudy。这包括但不限于Apache服务正常工作,MySQL数据库可选连接等。 - **放置项目文件夹**:将下载好的ThinkPHP框架或者已经存在的项目源码复制到`wwwroot`目录下(默认路径),即PHPStudy所指定的Web根目录内[^2]。 - **调整URL模式**: - 如果希望使用更加简洁友好的URL,则需要开启伪静态功能。 - 对于PHPStudy而言,可能因为mod_rewrite模块未被激活而导致此操作失败[^1]。 - **修改`.htaccess`文件**:对于某些版本来说,默认生成的`.htaccess`文件并不适用于所有主机环境;因此建议根据实际情况适当编辑该文件内的重定向规则来匹配当前使用的web server配置。 ```apache <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,L] </IfModule> ``` 上述代码片段展示了典型的用于启用路由解析的Apache `.htaccess`指令集。注意这里的前提是假设您的Apache确实加载了`mod_rewrite.so`扩展,并且允许覆盖站点级别的配置选项。 #### 常见问题及其解决方案 当尝试在PHPStudy上部署ThinkPHP应用时可能会碰到如下几种典型障碍: - **无法找到入口文件(index.php)**:检查虚拟主机指向是否准确无误地映射到了实际存放index.php的位置; - **伪静态不起作用**:除了验证mod_rewrite状态外,还需留意httpd.conf里关于AllowOverride权限设定部分,必要情况下将其设为All以便让子目录下的.htaccess生效; - **Session存储异常**:如果涉及到会话管理机制,在跨页面传递数据过程中出现问题的话,请参照官方文档排查是否有遗漏初始化过程或是其他潜在冲突点[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值