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+)(&amp;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

随机笔记

更多