返回列表 发新帖

[dz教学] discuz帖子链接加内部跳转的方法

[复制链接]
灌水成绩
960
主题
981
帖子
5845
积分
等级头衔
积分成就
  • 威望: 0
  • 贡献: 4864
  • 金钱: 0
  • 违规:
  • 在线时间:331 小时
  • 注册时间:2019-3-9
  • 最后登录:2020-1-19
个人勋章

官方

联系方式
QQ
发表在  2019-9-22 12:30:42 | 显示全部楼层 | 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
看到有些网站在发帖加url的时候,会做内部跳转,跳转地址类似:http://www.lansjn.com/go.php?url=www.lansjn.com这样可以减少网站的导出链接,下面说下修改方法。

找到文件:source/function/function_discuzcode.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>';

     }

}
将其修改为:
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
header('Location: '.$_GET['url']);
?>




温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6.添加QQ群随时获取新消息QQ群号:831240632
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表