discuz帖子链接加内部跳转的方法

  • PHP二次开发
  • 2014-1-25 09:44
  • PHP二次开发网
  • 阅读(18662)
  • 评论(0)
  • 摘要: 看到有些网站在发帖加url的时候,会做内部跳转,跳转地址类似:http://127.0.0.8/go.php?url=127.0.0.8,这样可以减少网站的导出链接,下面说下修改方法。
    看到有些网站在发帖加url的时候,会做内部跳转,跳转地址类似:http://www.php2.cc/go.php?url=www.php2.cc,这样可以减少网站的导出链接,下面说下修改方法。

    找到文件:source/function/function_discuzcode.php

    找到这样一个函数:

    [代码]php代码:

    function parseurl($url, $text, $scheme) {
    
         global $_G;
    
         if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
    
              $url = $matches[0];
    
              $length = 65;
    
              if(strlen($url) > $length) {
    
                   $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));
    
              }
    
              return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';
    
         } else {
    
              $url = substr($url, 1);
    
              if(substr(strtolower($url), 0, 4) == 'www.') {
    
                   $url = 'http://'.$url;
    
              }
    
              $url = !$scheme ? $_G['siteurl'].$url : $url;
    
              return '<a href="'.$url.'" target="_blank">'.$text.'</a>';
    
         }
    
    }
    

    将其修改为:

    [代码]php代码:

    function parseurl($url, $text, $scheme) {
    
         global $_G;
    
         if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
    
              $url = $matches[0];
    
              $length = 65;
    
              if(strlen($url) > $length) {
    
                   $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));
    
              }
    
              return '<a href="http://www.php2.cc/go.php?url='.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';
    
         } else {
    
              $url = substr($url, 1);
    
              if(substr(strtolower($url), 0, 4) == 'www.') {
    
                   $url = 'http://'.$url;
    
              }
    
              $url = !$scheme ? $_G['siteurl'].$url : $url;
    
              return '<a href="http://www.php2.cc/go.php?url='.$url.'" target="_blank">'.$text.'</a>';
    
         }
    
    }

    即可实现。

    go.php写法:

    [代码]php代码:

    <?php
    header('Location: '.$_GET['url']);
    ?>





    PHP技术交流QQ群:422137578

    除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-1123-1.html

    相关阅读

    最新评论

    用户名:  *

    邮 箱:  *

    网 址: 注意加上“http://”哦!