织梦dede如何禁止会员发布文章内容带超链接

实现教程

打开/member/inc/inc_archives_functions.php在文件的最后一行加入:

/**
 * 删除非站内链接
 *
 * @access  public
 * @param   string $body 内容
 * @param   array $allow_urls 允许的超链接
 * @return  string
 */
function Replace_Links( &$body, $allow_urls=array() )
{
  $host_rule = join('|', $allow_urls);
  $host_rule = preg_replace("#[\\n\\r]#", '', $host_rule);
  $host_rule = str_replace('.', "\\\\.", $host_rule);
  $host_rule = str_replace('/', "\\\\/", $host_rule);
  $arr = '';
  preg_match_all("#<a([^>]*)>(.*)<\\/a>#iU", $body, $arr);
  if( is_array($arr[0]) )
  {
    $rparr = array();
    $tgarr = array();
    foreach($arr[0] as $i=>$v)
    {
      if( $host_rule != '' && preg_match('#'.$host_rule.'#i', $arr[1][$i]) )
      {
        continue;
      } else {
        $rparr[] = $v;
        $tgarr[] = $arr[2][$i];
      }
    }
    if( !empty($rparr) )
    {
      $body = str_replace($rparr, $tgarr, $body);
    }
  }
  $arr = $rparr = $tgarr = '';
  return $body;
}

继续在这个文件中找到,大概在329行

//自动摘要

在它上面加入

//删除非站内链接
$allow_urls = array($_SERVER['HTTP_HOST']);
// 读取允许的超链接设置
if(file_exists(DEDEDATA."/admin/allowurl.txt"))
{
    $allow_urls = array_merge($allow_urls, file(DEDEDATA."/admin/allowurl.txt"));
}
$body = Replace_Links($body, $allow_urls);

THE END

文章版权:作者:demo  来源:芝麻通  

免责声明:本站提供的一切软件、插件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

本文最后更新于 2022-08-12 13:14:49,如果你的问题还没有解决,可以加入建站交流群和群友们一起讨论。

评论区