首页 / PHP / phpwind的rewrite重写原理
phpwind的rewrite重写原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了phpwind的rewrite重写原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2160字,纯文字阅读大概需要4分钟。
内容图文
没有深入过pw,被人问题这方面的问题,搜索了一下,发现了一篇博文,但原博客已打不开。
http://www.phpsoho.com/html/document/200608/1154750694.html
有人说过“phpwind“在技术是成功的,而dz在商业上成功的,在rewrite的控制中,pw做得远远比dz好。
官方默认的重写规则:
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
首先,我们分析他的构成。当我们打开 global.php 文件,找到 :
<?php $db_obstart == 1 ? ob_start(‘ob_gzhandler‘) : ob_start(); ?>
我们会发现,这个全局文件打开了一个ob_start,并且进行一些判断。这个是pw系统进行rewrite的一个关键。
然后我们再找到footer()函数:
]<?php function footer(){ global$db,$db_obstart,$db_footertime,$db_htmifopen,$P_S_T,$mtablewidth,$db_ceoconnect,$wind_version,$imgpath,$stylepath,$footer_ad,$db_union,$dbinfo,$timestamp; Update_ol(); if($db){ $qn=$db->query_num; } $ft_gzip=($db_obstart==1 ? "Gzip enabled" : "Gzip disabled").$db_union[3]; if ($db_footertime == 1){ $t_array = explode(‘ ‘,microtime()); $totaltime = number_format(($t_array[0]+$t_array[1]-$P_S_T),6); $wind_spend = "Total $totaltime(s) query $qn,"; } $ft_time=get_date($timestamp,‘m-d H:i‘); include PrintEot(‘footer‘); $output = str_replace(array(‘<!--<!---->‘,‘<!---->‘),array(‘‘,‘‘),ob_get_contents()); if($db_htmifopen){ $output = preg_replace( "/<a(s*[^>]+s*)href=(["|‘]?)([^"‘>s]+.php?[^"‘>s]+)(["|‘]?)/ies", "Htm_cv(‘3‘,‘<a1href="‘)", $output ); } ob_end_clean(); $db_obstart == 1 ? ob_start(‘ob_gzhandler‘) : ob_start(); echo$output; flush; exit; } ?>
common.php中:
function parseHtmlUrlRewrite($html, $flag) { return$flag ? preg_replace("/\<a(\s*[^\>]+\s*)href\=([\"|\‘]?)((index|cate|thread|read|faq|rss)\.php\?[^\"\‘>\s]+\s?)[\"|\‘]?/ies", "Htm_cv(‘\\3‘,‘<a\\1href=\"‘)", $html) : $html; } /** * url处理 * * @param string $url * @param string $tag * @return string */function Htm_cv($url, $tag) { returnstripslashes($tag) . urlRewrite($url) . ‘"‘; } 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?‘, ‘=‘, ‘&‘, ‘&‘, $add), array($db_dir, ‘-‘, ‘-‘, ‘-‘, ‘‘), $url); $turl != $url && $turl .= $db_ext; return$turl . $add; }
原文:http://www.cnblogs.com/x3d/p/3531852.html
内容总结
以上是互联网集市为您收集整理的phpwind的rewrite重写原理全部内容,希望文章能够帮你解决phpwind的rewrite重写原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。