To showbo,老问题 现在测试中出现新问题解决不了?

lionz1023 2014-06-16 10:13:46
原帖http://bbs.csdn.net/topics/390800374
问题2:想做关键词替换,我看好多网站只要文中出现规定的关键词就替换成锚文本关键词,即加了链接,本人水平有限想到的只是replace,但是自己设定的词库词多的情况下把分词怎么遍历内容并做替换?(PS:是不是可以通过js函数进行前台替换呢?)
根据您的解决方法我自己重新写了下,测试了这么长时间基本可以实现。


sqlk="select * from (关键词表) where id=1"
set rsk=conn.execute (sqlk)
con=rsk("con")
rsk.close
set rsk=nothing
Function key(t)
kw=split(con,",")
l=ubound(kw)
dim arr()
redim arr(l)
'替换成站位符号
for i=0 to l
arr(i)="$$"&i&"$$"'收集站位符号(这进行了修改,原答案超过10个次后替换会出问题,$$11会按$$1进行替换)
t=replace(t,split(kw(i),"|")(0),arr(i))
next

'反替换
for i=0 to l
t=replace(t,arr(i),"<a href='"&split(kw(i),"|")(1)&"' >"&split(kw(i),"|")(0)&"</a>")
next
key = t
End Function


现在有个问题就是,你看下这个文章http://www.qh361.com/lygl_c.asp?id=1273,文章很短,但是出现关键词青海湖频率很高的情况下所有的都替换看上去实在有点乱,所以我想做的就是只替换同一个词前三次出现,后面再出现就不用替换。我改了半天实现不了,请大神指点~
附关键词表格式:
青海湖旅游|/zt/qhh/,鸟岛|/photo_c.asp?id=5,兰州|/xl.asp?id=232(只写了几个,大概我后台就是这么个格式)


...全文
498 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lionz1023 2014-06-17
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
replace可以指定替换几次。。不过你不全部替换有可能会导致短尾关键字会替换到长尾的关机键子去。。 如下面这个例子。。最后的百度seo的seo被短尾的替掉了
s="fafjlej百度seo非叫阿拉法骄傲seo技巧百度seoaefafefa百度seoaeafe333aq333百度seo"
kw=split("百度seo,seo",",")
l=ubound(kw)
dim arr()
redim arr(l)
'替换成站位符号
for i=0 to l
 arr(i)="$$"&i'收集站位符号
 s=replace(s,kw(i),arr(i),1,3)
next
'反替换
for i=0 to l
  s=replace(s,arr(i),"<a href='search.asp?keyword="&kw(i)&"'>"&kw(i)&"</a>")
next
set dic=nothing

response.write s
Replace 函数语法 Replace(expression, find, replacewith[, start[, count[, compare]]]) 返回一字符串 , 表示字符中的一个特定子字符串已经被另一个子符串取代的次数。 Replace 函数的语法包含以下的组成部分 : Expression 为必须 项。字符串表达式 , 包含了要被取代的子字符串。 find 为必须 项。要被搜寻的子字符串。 replacewith 为必须 项。用来取代的子字符串。 start 为必须 项。在 expression 中,子字符串搜寻动作的开始位置。如果省略,则预设为 1 。 Count 为 选择项。子字符串取代的执行次数。如果省略,默认值为 -1 ,表示将执行所有可能的取代动作。 compare 为选择项。指定子字符串比对的种类。 compare 参数的设定值如下:
我也是想的让文章内链看起来很自然 并且分布很均匀,长尾需要替换前三次,并且后面的循环到短尾后能自动跳过,只是暂时还没找到很好的解决方案,初步想的是三次以后的进行替换和反替换来跳过,慢慢测试
  • 打赏
  • 举报
回复
问问题之前,自己要学会思考,学会搜索,这才是进步之道
  • 打赏
  • 举报
回复
Replace ( string1, start, string2,n,m ) 参数string1:string类型,指定要使用string2替换其中一部分内容的字符串; 参数start:long类型,指定要从哪个字符位置开始替换字符串,字符串中第一个字符的位置为1; 参数n:long类型,指定要替换开始字符起始位置,从左到右; 参数m:int类型,指定要替换字符串的次数,1 代表替换一次; 基础会看么?资料会查么?查看资料以后,这些参数的说明你应该看得懂吧
Go 旅城通票 2014-06-16
  • 打赏
  • 举报
回复
replace可以指定替换几次。。不过你不全部替换有可能会导致短尾关键字会替换到长尾的关机键子去。。 如下面这个例子。。最后的百度seo的seo被短尾的替掉了
s="fafjlej百度seo非叫阿拉法骄傲seo技巧百度seoaefafefa百度seoaeafe333aq333百度seo"
kw=split("百度seo,seo",",")
l=ubound(kw)
dim arr()
redim arr(l)
'替换成站位符号
for i=0 to l
 arr(i)="$$"&i'收集站位符号
 s=replace(s,kw(i),arr(i),1,3)
next
'反替换
for i=0 to l
  s=replace(s,arr(i),"<a href='search.asp?keyword="&kw(i)&"'>"&kw(i)&"</a>")
next
set dic=nothing

response.write s
Replace 函数语法 Replace(expression, find, replacewith[, start[, count[, compare]]]) 返回一字符串 , 表示字符中的一个特定子字符串已经被另一个子符串取代的次数。 Replace 函数的语法包含以下的组成部分 : Expression 为必须 项。字符串表达式 , 包含了要被取代的子字符串。 find 为必须 项。要被搜寻的子字符串。 replacewith 为必须 项。用来取代的子字符串。 start 为必须 项。在 expression 中,子字符串搜寻动作的开始位置。如果省略,则预设为 1 。 Count 为 选择项。子字符串取代的执行次数。如果省略,默认值为 -1 ,表示将执行所有可能的取代动作。 compare 为选择项。指定子字符串比对的种类。 compare 参数的设定值如下:

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧