看到有些网站在发帖加url的时候,会做内部跳转,跳转地址类似:http://www.php2.cc/go.php?url=www.php2.cc,这样可以减少网站的导出链接,下面说下修改方法。
找到文件:source/function/function_discuzcode.php
找到这样一个函数:
[代码]php代码:
01 |
function parseurl( $url , $text , $scheme ) { |
05 |
if (! $url && preg_match( "/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i" , trim( $text ), $matches )) { |
11 |
if ( strlen ( $url ) > $length ) { |
13 |
$text = substr ( $url , 0, intval ( $length * 0.5)). ' ... ' . substr ( $url , - intval ( $length * 0.3)); |
17 |
return '<a href="' .( substr ( strtolower ( $url ), 0, 4) == 'www.' ? 'http://' . $url : $url ). '" target="_blank">' . $text . '</a>' ; |
21 |
$url = substr ( $url , 1); |
23 |
if ( substr ( strtolower ( $url ), 0, 4) == 'www.' ) { |
25 |
$url = 'http://' . $url ; |
29 |
$url = ! $scheme ? $_G [ 'siteurl' ]. $url : $url ; |
31 |
return '<a href="' . $url . '" target="_blank">' . $text . '</a>' ; |
将其修改为:
[代码]php代码:
01 |
function parseurl( $url , $text , $scheme ) { |
05 |
if (! $url && preg_match( "/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i" , trim( $text ), $matches )) { |
11 |
if ( strlen ( $url ) > $length ) { |
13 |
$text = substr ( $url , 0, intval ( $length * 0.5)). ' ... ' . substr ( $url , - intval ( $length * 0.3)); |
17 |
return '<a href="http://www.php2.cc/go.php?url=' .( substr ( strtolower ( $url ), 0, 4) == 'www.' ? 'http://' . $url : $url ). '" target="_blank">' . $text . '</a>' ; |
21 |
$url = substr ( $url , 1); |
23 |
if ( substr ( strtolower ( $url ), 0, 4) == 'www.' ) { |
25 |
$url = 'http://' . $url ; |
29 |
$url = ! $scheme ? $_G [ 'siteurl' ]. $url : $url ; |
31 |
return '<a href="http://www.php2.cc/go.php?url=' . $url . '" target="_blank">' . $text . '</a>' ; |
即可实现。
go.php写法:
[代码]php代码:
2 |
header( 'Location: ' . $_GET [ 'url' ]); |