[asp]关键词只替换一次的写法,
了解SEO的人,都会对站内链接感兴趣,如何做好站内链接也是一门学问,但不属于本文的讨论范畴,本文旨在于介绍一种替换的方法,让站内链接更方便且更加合理…
1, 为了统一管理站内链接的文本的链接地址,我们需要一个表,结构如下:
[KeyWords] ID Name Url
这个表里将记录所有文本和所指向链接的对应关系
2, 默认已经取得内容为 Content
以下是代码片段:
Dim xyContent : xyContent = "" If Content<> "" Then Dim RsSite,SqlSite Set RsSite = Server.CreateObject("Adodb.RecordSet") SqlSite = "Select * From [KeyWords] Order By Len(Name) DESC" RsSite.Open SqlSite,Conn,1,1 Do While Not RsSite.Eof xyContent = Replace(Content,RsSite("Name"),"##"&RsSite("ID")&"##",1,1) RsSite.MoveNext Loop RsSite.Close Set RsSite = Nothing Set RsSite = Server.CreateObject("Adodb.RecordSet") SqlSite = "Select * From [KeyWords] Order By Len(Name) DESC" RsSite.Open SqlSite,Conn,1,1 Do While Not RsSite.Eof xyContent = Replace(xyContent,"##"&RsSite("ID")&"##","<a href=’"&RsSite("Url")&"’ target=’_blank’>"&RsSite("Name")&"</a>",1,1) RsSite.MoveNext Loop RsSite.Close Set RsSite = Nothing End If |
红色字体部分:
Len(Name) DESC 目的是先替换长关键词,后替换短关键词,以不至于可能存在的包含关系出现替换错误的尴尬局面.
Replace(Content,RsSite("Name"),"##"&RsSite("ID")&"##",1,1) 目的是把所有匹配到的关键词的第一个替换成由##ID##组成的特殊字符组合,至于Replace函数的参数说明,如下:
Replace 函数
描述: 返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。 语法: Replace(expression, find, replacewith[, compare[, count[, start]]]) Replace 函数的语法有以下参数: 参数: expression 必选。 字符串表达式 包含要替代的子字符串。 find 必选。被搜索的子字符串。 replacewith 必选。用于替换的子字符串。 start 可选。expression 中开始搜索子字符串的位置。如果省略,默认值为 1。在和count 关联时必须用 count 可选。执行子字符串替换的数目。如果省略,默认值为 -1,表示进行所有可能的替换。在和 start 关联时必须用。 compare 可选。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,缺省值为 0 ,这意味着必须进行二进制比较。 设置: compare 参数可以有以下值: 常数 值 描述 vbBinaryCompare 0 执行二进制比较。 vbTextCompare 1 执行文本比较。 返回值: Replace 返回以下值: 如果 Replace 返回 expression 为零长度 零长度字符串 ("")。 expression 为 Null 错误。 find 为零长度 expression 的副本。 replacewith 为零长度 expression 的副本,其中删除了所有由 find 参数指定的内容。 start > Len(expression) 零长度字符串。 count 为 0 expression 的副本。 说明: Replace 函数的返回值是经过替换(从由 start 指定的位置开始到 expression 字符串的结尾)后的字符串,而不是原始字符串从开始至结尾的副本。
综合上述,便完成了一个只替换一次关键词的做法. [Web开发]一个关于ASP运行时间计算的代码 [Web开发]ASP:检测含有中文字符串的实际长度 [Web开发]asp 中英文字符长度检测判断函数 [Web开发]安全维护 IIS asp 站点的高级技巧 [Web开发]常见ISAPI_Rewrite规则写法 [Access]ASP&SQL让select查询结果随机排序的实现方法 [Web开发]ASP字符串截取函数 [实用文档]求职书的写法(应往届毕业生) [Web开发]Asp无组件生成缩略图方法详解 [Web开发]asp编程中优化数据库方法详解
|