【www.gdgbn.com--php函数】

其实这种方法来限制字数的话还有缺陷的,就是在截取中,英文混合的话,英文也按一个字截取了
下面是经过改良以后的函数,供楼主参考
调用方法不变
function Setlen(str,howlong)
if str="" then
  leftstr=""
  exit function
end if
dim l,t,c, i
str=replace(replace(replace(replace(str," "," "),""",chr(34)),">",">"),"<","<")
l=len(str)
t=0
for i=1 to l
  c=Abs(Asc(Mid(str,i,1)))
  if c>255 then
  t=t+2
else
  t=t+1
  end if
  if t>=howlong then
   leftstr=left(str,i) & "..."
   exit for
  else
   leftstr=str
  end if
next
leftstr=replace(replace(replace(replace(leftstr," "," "),chr(34),"""),">",">"),"<","<")
end function

 

Public Function CutStr(str, number)
        Dim length, llen, i, value
        Dim tmp
        tmp = str
        If isNull(tmp) Then tmp = ""
        length = Len(tmp)
        llen = 0
        For i = 1 To length
                value = AscW(Mid(tmp, i, 1))
                If value >= -127 AND value <= 127 Then
                        llen = llen + 1
                Else
                        llen = llen + 2
                End If
                "debugPrint(Mid(tmp, i, 1) & ":" & value & "--" & llen)
                If llen >= number-3 Then
                        CutStr = Left(tmp, i) & "..."
                        Exit Function
                End If
        Next
        CutStr = tmp
End Function

本文来源:http://www.gdgbn.com/jiaocheng/14843/