为模拟 URL Rewrite 添加相对路径转绝对路径函数

最头疼的就是正则了,不过这次研究了两天(PS:时间真够长的),终于完成了相对路径转绝对路径函数,代码虽然不长,花的时间可真够多。

经过测试找到最快的一种,另一种也能实现很好的转换,但速度相对慢一些。

/**
* 将相对路径转换为绝对路径地址,但不转换包括 http:、https:、ftp:、javascript:和/ 开头的字符串
*
*
@param string $content 需要转换的文本或字串
*
@param string $virtual_path 虚拟路径名称,请以 /folder_name/ 形式出现
*
@return string
*/

function r2a($content, $virtual_path='/') {
$content = preg_replace('/( src=| href=| action=| href="| src="| action="| href=\'| src=\'| action=\'|location=\')(?!"|\'|\/|' . addcslashes($virtual_path, "/.+(){}[]^$!") . '|' . 'http:|https:|ftp:|javascript:|mailto:|' . 'ed2k:|thunder:|talkto:|skype:|msnim:|' . 'wangwang:|callto:|#)/isSU', '\\1' . $virtual_path, $content);
return $content;
}

2 Responses to “为模拟 URL Rewrite 添加相对路径转绝对路径函数”

  1. huhu Says:

    这个怎么使用阿。怎么加到模拟 URL Rewrite里,由于路径不对,CSS样式丢失了。

  2. titan Says:

    这是做什么用的啊?

    对了,我在pjhome的论坛找屏蔽垃圾评论的方法,找到你这,照着你说的做了,不知道哪里出错,还是不行~ 还有别的方法吗?

发页文章评论

Theme Brought to you by Directory Journal and Elegant Directory