PHP静态链接的实现方法
注:是“静态链接”而不是“静态化”,例如DZ中的:<a href=”forum-2-1.html”? style=””>默认版块</a>
这个链接是怎么生成的?
分析了好久,把DZ 程序模板编译部分翻了一个稀巴烂,终于理清了一点思绪,总结如下:
主要技术是正则替换函数 preg_replace() ,也就是说,在编译好的文件输出到客户端之前用preg_replace()函数,按照一定的规则,把类似 “forumdisplay.php?fid=2”的链接,替换成 “forum-2-1.html”,DZ 的替换方法如下,其实替换方法大多相似,大家可以举一反三。
$searcharray[] = “/\<a href\=\”forumdisplay\.php\?fid\=(\d+)(&page\=(\d+))?\”([^\>]*)\>/e”;
$replacearray[] = “rewrite_forum(‘\\1’, ‘\\3’, ‘\\4’)”;
$content = preg_replace($searcharray, $replacearray, $content);
//rewrite_forum 函数:
function rewrite_forum($fid, $page = 0, $extra = ”) {
?return ‘<a href=”forum-‘.$fid.’-‘.($page ? $page : 1).’.html”‘.stripslashes($extra).’>’;
}
其中 rewrite_forum(‘\\1’, ‘\\3’, ‘\\4’) 中的 “1”“3”“4”,是获取和正则相匹配的内容。
自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com
本文链接地址: PHP静态链接的实现方法(注:是“静态链接”而不是“静态化”) http://www.chhua.com/web-note586
评论