用ASP实现论坛的UBB功能(二)

望谟民族绣花

望谟民族绣花

2016-01-29 17:24

用ASP实现论坛的UBB功能(二),用ASP实现论坛的UBB功能(二)
  大家应当注意到了,我们所要用的函数Instr的小秘密就是它的最后一个可选择参数Compare,因为我们的UBB代码需要大小写不敏感的,默认的情况下,函数Instr是要进行二进制匹配的,也就是说是对大小写敏感的,所以记住了,这个
Compare参数的值应当设置成为1才可以满足我们的要求。
  Replace 函数
  返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。
  Replace(expression, find, replacewith[, compare[, count[, start]]])
  参数
  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的Compare可选择参数了,这样我们在进行UBB代码全程替换的时候才可以保证对大小写的不敏感。
  其实,实现UBB代码的程序核心思想都是相同的,实现了其中的一个,其他的也都是迎刃而解的了。下面我们以比较困难并且有代表性的[url]……[/url]语法的实现为例来详细讲解如何实现他:
  首先,我们可以分析出来,在一段文章当中,要实现这个功能,其实也就是将形式为http://xxx.xxx.xxx的字符串找出来,并且加以适当的替换,并且要全程替换,也就是说,你要设法记住你的每一步所在的位置,以便依次进行替换,下面就是实现这个UBB语法的函数代码:(里面有详细注释)
  Function LinkURLs(strInput)
  Dim iCurrentLocation
  Dim iLinkStart
  Dim iLinkEnd
  Dim strLinkText
  Dim strOutPut
  '初始化变量
  strLinkText=""
  strOutput=""
  iCurrentLocation=1
  Do while Instr(iCurrentLocation,strInput,"[url]",1)<0 '查找UBB语法字符串
  iLinkStart=Instr(iCurrentLocation,strInput,"[url]",1) '记录下开始位置
  iLinkEnd=Instr(iCurrentLocation+1,strInput,"[/url]",1) '记录下结束位置
  If iLinkEnd=0 then iLinkEnd=len(strINput)+1
  select case Mid(strInput,iLinkEnd-1,1)
  case ".","!","?"
  iLinkEnd=iLinkEnd-1 '剔除多余标点符号
  end select
  stroutput=strOutput & Mid(strInput,iCurrentLocation,iLinkStart-iCurrentLocation)
  strLinkText=replace(Mid(strInput,iLinkStart+5,iLinkEnd-iLinkStart-5),"[/url]","")
  strOutput=strOutput & "" & strLinkText & ""
  iCurrentLocation=iLinkEnd '记录下当前游标位置
  Loop
  strOutput=strOutput & Mid(strInput,iCurrentLocation)
  LinkURLs=replace(strOutput,"[/url]","",1,-1,1)
  End Function
  好了,通过上面的这个实现[url]……[/url]功能的函数,我们可以以此类推得到实现其他UBB语法的函数,限于篇幅,我就不一一加以祥述了,你可以将这些函数放到一个文件中,形成一个UBB代码函数库,这样就可以方便的在你的程序当中加以引用了。
  怎么样,通过我们自己的努力,现在我们的论坛也可以完全支持UBB代码功能了,我们的论坛现在也会变得色彩斑斓,图文并茂了,也必将会吸引到更多的网友,:)
  关于上面文章的实际应用例子,您可以在这里访问到: Http://TechTop.Yeah.Net
  (以上所有程序均在Windows9x/NT,IIS/PWS,Access/SQL7上面运行通过)(北京 苏红超)
  
展开更多 50%)
分享

猜你喜欢

用ASP实现论坛的UBB功能(二)

ASP
用ASP实现论坛的UBB功能(二)

用ASP实现论坛的UBB功能(一)

ASP
用ASP实现论坛的UBB功能(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ubb风格论坛中自您上次来后有新的贴子的功能的asp实现

ASP
ubb风格论坛中自您上次来后有新的贴子的功能的asp实现

在ASP中利用“正则表达式” 对象实现UBB风格的论坛

ASP
在ASP中利用“正则表达式” 对象实现UBB风格的论坛

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

论坛UBB代码 推荐

Web开发
论坛UBB代码 推荐

用ASP实现汉字转拼音的功能

ASP
用ASP实现汉字转拼音的功能

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

把IP表存入SQL里的程序

把IP表存入SQL里的程序

Windows操作系统常见驱动故障解决方法

Windows操作系统常见驱动故障解决方法
下拉加载更多内容 ↓