• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >phpwind > phpwind的rewrite重写原理

phpwind的rewrite重写原理

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-13

佚名 向大家介绍了phpwind,discuz phpwind,phpwind模板制作,powered by phpwind,达盖尔的旗帜phpwind等相关知识,希望对您有所帮助

就是一般我们用echo print 输出字符到页面上的时候,意味着只要执行到了echo,php就会立即输出到客户端,但php有几个和缓冲相关的函数,他可以控制你输出的行为,就是不立马输出,而是等你调用了ob_flush/flush函数,才输出。而pw就是利用了这个原理,等页面所有的内容都生成完毕了,最后调footer()时,ob_get_contents(),获取缓冲的内容,通过正则批量替换url,构造rewrite的url格式。

关于ob,其实有两种主要的使用场景,一个是实现页面压缩输出 - ob_gzhandler;再一个是在ajax/自定义api返回数据时,程序执行过程中,你不知道前面的程序是否有些意外的输出字符如空格、空行等,他们在数据返回时会造成很多意外情况,所以可以在你输出数据前,清除前面的缓冲内容,重新开始输出。

官方默认的重写规则(注:重写是web服务器 - 如apache、nginx或应用容器tomcat的功能,不是程序语言自己的功能),如pw的一条重写规则 - apache:

首先,我们分析他的构成。当我们打开 global.php 文件,找到 :


我们会发现,这个全局文件打开了一个ob_start,并且进行一些判断。这个是pw系统进行rewrite的一个关键。

然后我们再找到footer()函数:


common.php中:


}</p> <p>/**
* url处理
*
* @param string $url
* @param string $tag
* @return string
*/
function Htm_cv($url, $tag) {
return stripslashes($tag) . urlRewrite($url) . '"';
}</p> <p>function urlRewrite($url) {
global $db_htmifopen, $db_dir, $db_ext;
if (!$db_htmifopen) return $url;
$tmppos = strpos($url, '#');
$add = $tmppos !== false ? substr($url, $tmppos) : '';
$turl = str_replace(array('.php?', '=', '&amp;', '&', $add), array($db_dir, '-', '-', '-', ''), $url);//pw的重写规则在这里进行字符的替换
$turl != $url && $turl .= $db_ext;
return $turl . $add;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • phpwind的rewrite重写原理
  • 伪静态在phpWind中的应用
  • phpwind9.0系统的视觉进化论(图文)
  • phpwind 的编码错误导致cookie失效的解决,表象是无法注册登录
  • phpwind论坛关闭在线列表
  • PHPWind论坛核心设置详细说明【config.php】
  • phpwind后台删除用户点选“直接删除”出错问题
  • 体验PHPWind v7.3RC意外收获
  • phpwind热榜排行最新回复排序问题
  • phpwind版主推荐权限问题

相关文章

  • 2017-05-13phpwind版主推荐权限问题
  • 2017-05-13phpwind改名后可以重复投票问题
  • 2017-05-13phpwind系统头像无效问题
  • 2017-05-13phpwind 今日发贴数量不显示解决
  • 2017-05-13巧用Discuz!7.0后台防灌水功能
  • 2017-05-13phpwind7.5运营工具:站点运营必须工具集合
  • 2017-05-13无心宠物2.3 PHPWIND7.0/6.X通用版插件
  • 2017-05-13phpwind9.0系统的视觉进化论(图文)
  • 2017-05-13phpwind支付成功后收不到交易币的解决方案
  • 2017-05-13phpwind的rewrite重写原理

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • phpwind 今日发贴数量不显示解决
    • PHPwind6.x CSS模板样式表修改帮助
    • phpwind改名后可以重复投票问题
    • phpwind7.5灵活的业务支持体系
    • Phpwind7.5应用中心:基础、第三方在线应用等设置
    • phpwind后台删除用户点选“直接删除”出错问题
    • phpwind的wap中帖子访问权限问题
    • phpwind用帖子时出现乱码问题
    • phpwind热榜排行最新回复排序问题
    • 伪静态在phpWind中的应用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有