网页特效代码_站长素材站移动版

DeDecms教程

主页 > CMS教程 > DeDecms教程 >

织梦dedecms删除所有文章的内链而保留文本的实现方法

  有个网友遇到一个问题——织梦怎么删除所有文章的超链而保留文本,注意是删除所有文章的超链,链接有好几万很多链接都不一样。对于几万多的内链手动删除是不可能的。所以这个时候就要请出世界上最好的用的编程语言php来小动牛刀。
  这段代码原理很简单,批量循环正则替换。把里面的链接全部去掉。当然这段代码还是很粗糙的。如果遇到几十万个文章的,这种方法是非常消耗服务器性能的。当然如果几千几万的链接还是可以承受的住的。
<?php

//调用数据库配置文件
require ("data/common.inc.php");
//链接数据库
$conn = mysql_connect($cfg_dbhost, $cfg_dbuser, $cfg_dbpwd) or die("服务器链接失败");
mysql__db($cfg_dbname) or die("打开失败");
//如果是gbk格式 改成 mysql_query("SET NAMES gbk");
mysql_query("SET NAMES UTF8");
$sql = "select * from {$cfg_dbprefix}addonarticle order by aid desc";
$result = mysql_query($sql);
while ($rows = mysql_fetch_array($result)) {
    $body = $rows["body"];
	//正则替换所有链接
    $newbody = preg_replace("/<a(.*)>(.*)</a>/is", "$2", $body);
    $sqlu = "update {$cfg_dbprefix}addonarticle set body='" . $newbody . "' where aid=" . $rows["aid"];
    $resultu = mysql_query($sqlu);
    if (!$resultu) {
        $eoo[] = $rows["aid"];
    }
}
if (isset($eoo)) {
    echo "有错误,有错误的ID如下:<br/>";
    print_r($eoo);
} else {
    echo "执行成功";
}
?>
  将上面这段代码复制下来,保存到到th.php 文件里,将th.php文件上传到网站根目录。然后在浏览器里执行这个文件。就是在浏览器里打开这个链接 http://你的网站/th.php 。如果出现“执行成功”提示,就说明网站内链全部清除干净了。
  还有一种是dede后台自动生成的内链,这种通过dede后台操作下就能解决。
  核心----》批量维护----》文档关键词维护
(责任编辑:admin)

    468x60