文章给关键词自动加链接

时间:2020-12-26 06:05:55
网站的文章页想加上自动给关键词添加链接的功能,关键词存数据库里。
id,      --标识
tag,     --关键词
title,     --A标签的title属性
pageurl    --指向地址

我是这么做的,先读出这些关键词,然后再循环Replace下,基本上算是完成了
不过还有些问题,比如关键词和A标签里的title属性有重复时它会把A标签里的title也替换掉。。。这样就很麻烦了,不是我想要的效果
比如我的关键词有:{网络,网站优化,http://www.XXXX.com},{营销,北京网络营销,http://www.XXXX.com},{优化,SEO优化,http://www.XXXX.com}


public static string ReplaceTextTag(string content) {
            if (!string.IsNullOrEmpty(content)) {
                System.Data.DataTable dt = new DAL.TextTag().GetList();
                for (int i = 0; i < dt.Rows.Count; i++) {
                    content = content.Replace(dt.Rows[i]["Tag"].ToString(), "<a href=\"" + dt.Rows[i]["PageUrl"].ToString() + "\" title=\"" + dt.Rows[i]["Title"].ToString() + "\" target=\"_blank\">" + dt.Rows[i]["Tag"] + "</a>");
                }
            }
            return content;
        }


这样循环替换后就有问题了,怎么解决啊?用正则吗,怎么玩?还是有别的思路?请教下。。。

5 个解决方案

#1


我想知道你用的是什么控件显示这些关键字,

如果是datalist的话:

<a herf='<%# binder("pageurl")%>'><%# binder("tag")%></a>

#2


关键词不用特定的控件显示,直接夹在文章里一起显示

比如:“这里是一句话”,数据库里有关键词:话,话题
就应该变成:“这里是一句<a href="http://www.xxx.com" title="关于X的话题">话</a>”

但循环后就变成了:“这里是一句<a href="http://www.xxx.com" title="关于X的<a href="http://www.xxx.com" title="讨论话题">话题</a>">话</a>”

看到没?连A标签里面的东西也替换了
能不能解决只给纯文本上的文字加链接,是用正则吧?怎么写。。。

#3


<a herf=' <%# binder("pageurl")%>' title='关于<%# binder("tag")%>的话题'> <%# binder("tag")%> </a>

为什么一定要搞的这么复杂呢????

#4


楼上的理解有问题,关键词是单独数据表存起来,和文章信息不相干
只是在显示文章的时候要把它里面本应的关键词加上链接,(关键词有好多,不止一个关键词对应一篇文章)

#5


关注 想学学!~

#1


我想知道你用的是什么控件显示这些关键字,

如果是datalist的话:

<a herf='<%# binder("pageurl")%>'><%# binder("tag")%></a>

#2


关键词不用特定的控件显示,直接夹在文章里一起显示

比如:“这里是一句话”,数据库里有关键词:话,话题
就应该变成:“这里是一句<a href="http://www.xxx.com" title="关于X的话题">话</a>”

但循环后就变成了:“这里是一句<a href="http://www.xxx.com" title="关于X的<a href="http://www.xxx.com" title="讨论话题">话题</a>">话</a>”

看到没?连A标签里面的东西也替换了
能不能解决只给纯文本上的文字加链接,是用正则吧?怎么写。。。

#3


<a herf=' <%# binder("pageurl")%>' title='关于<%# binder("tag")%>的话题'> <%# binder("tag")%> </a>

为什么一定要搞的这么复杂呢????

#4


楼上的理解有问题,关键词是单独数据表存起来,和文章信息不相干
只是在显示文章的时候要把它里面本应的关键词加上链接,(关键词有好多,不止一个关键词对应一篇文章)

#5


关注 想学学!~