
如上图所示,PJBlog3后台的关键词功能可以为博文中一些特定的关键词加上链接,从SEO角度来说,这对做站内链接极有帮助,但经实际测试,添加上图关键词后,只能实现替换博文中出现的关键词asp.net,而对ASP.NET、asp.NET就失效了,也就是说,PJBlog3替换的时候是区分大小写的,查看了相关代码后,最终解决了该问题。
实现PJBlog3关键词识别替换不区分大小写的方法
打开common/ubbcode.asp文件,找到如下代码:
'-----------关键词识别----------------
If AutoKEY = 1 Then
Dim log_Keywords, log_KeywordsContent
For Each log_Keywords IN Arr_Keywords
log_KeywordsContent = Split(log_Keywords, "$|$")
If log_KeywordsContent(3)<>"None" Then
strContent = Replace(strContent, log_KeywordsContent(1), "<a href="""&log_KeywordsContent(2)&""" target=""_blank""><img src=""images/keywords/"&log_KeywordsContent(3)&""" border=""0"" alt=""""/> "&log_KeywordsContent(1)&"</a>")
Else
strContent = Replace(strContent, log_KeywordsContent(1), "<a href="""&log_KeywordsContent(2)&""" target=""_blank"">"&log_KeywordsContent(1)&"</a>")
End If
Next
End If修改为:
'-----------关键词识别----------------
If AutoKEY = 1 Then
Dim log_Keywords, log_KeywordsContent
Dim regEx
SET regEx = new RegExp
'regEx.Pattern = "(s)$"
regEx.IgnoreCase = True
regEx.Global = True
For Each log_Keywords IN Arr_Keywords
log_KeywordsContent = Split(log_Keywords, "$|$")
regEx.Pattern = "("&log_KeywordsContent(1)&")"
If log_KeywordsContent(3)<>"None" Then
strContent = regEx.Replace(strContent, "<a href="""&log_KeywordsContent(2)&""" target=""_blank""><img src=""images/keywords/"&log_KeywordsContent(3)&""" border=""0"" alt=""""/>$1</a>")
Else
strContent = regEx.Replace(strContent, "<a href="""&log_KeywordsContent(2)&""" target=""_blank"">$1</a>")
End If
Next
SET regEx = Nothing
End If后记
虽然Replace函数最后一个参数也能解决大小写匹配的问题:Replace(str1,str2,1,-1,1),但是经它替换后,原先博文内容中的ASP.NET、asp.NET都统一成了小写asp.net,不太完美,所以改用正则来替换。
本次测试使用PJBlog版本为PJBlog3 v3.1.6.227。
评论(0)
暂无评论。