asp仿php的一些函数分享

复制代码 代码如下:

  '过程:输出字符串[代替Response.Write]

  Sub echo(Str)

  response.Write(Str)

  End Sub

  '函数:获取表单[代替Request.Form]

  Function reqf(Str)

  reqf = Request.Form(Str)

  End Function

  '过程:结束页面并输出字符串

  Sub die(Str)

  response.Write(Str)

  response.End()

  End Sub

  '函数:将ASP文件运行结果返回为字串

  Function ob_get_contents(Path)

  Dim tmp, a, b, t, matches, m

  Dim Str

  Str = file_iread(Path)

  tmp = "dim htm : htm = """""&vbCrLf

  a = 1

  b = InStr(a, Str, "<%") + 2

  While b > a + 1

  t = Mid(Str, a, b - a -2)

  t = Replace(t, vbCrLf, "{::vbcrlf}")

  t = Replace(t, vbCr, "{::vbcr}")

  t = Replace(t, """", """""")

  tmp = tmp & "htm = htm & """ & t & """" & vbCrLf

  a = InStr(b, Str, "%\>") + 2

  tmp = tmp & str_replace("^\s*=", Mid(Str, b, a - b -2), "htm = htm & ") & vbCrLf

  b = InStr(a, Str, "<%") + 2

  Wend

  t = Mid(Str, a)

  t = Replace(t, vbCrLf, "{::vbcrlf}")

  t = Replace(t, vbCr, "{::vbcr}")

  t = Replace(t, """", """""")

  tmp = tmp & "htm = htm & """ & t & """" & vbCrLf

  tmp = Replace(tmp, "response.write", "htm = htm & ", 1, -1, 1)

  tmp = Replace(tmp, "echo", "htm = htm & ", 1, -1, 1)

  'execute(tmp)

  executeglobal(tmp)

  htm = Replace(htm, "{::vbcrlf}", vbCrLf)

  htm = Replace(htm, "{::vbcr}", vbCr)

  ob_get_contents = htm

  End Function

  '过程:动态包含文件

  Sub include(Path)

  echo ob_get_contents(Path)

  End Sub

  '函数:base64加密

  Function base64encode(byval Str)

  If IsNull(Str) Then Exit Function

  Dim base64

  Set base64 = New base64_class

  Str = base64.encode(Str)

  Set base64 = Nothing

  base64encode = Str

  End Function

  '函数:base64解密

  Function base64decode(byval Str)

  If IsNull(Str) Then Exit Function

  Dim base64

  Set base64 = New base64_class

  Str = base64.decode(Str)

  Set base64 = Nothing

  base64decode = Str

  End Function

  '函数:URL加密

  Function urlencode(byval Str)

  If IsNull(Str) Then Exit Function

  Str = server.URLEncode(Str)

  urlencode = Str

  End Function

  '函数:Escape加密

  Function escape(byval Str)

  If IsNull(Str) Then Exit Function

  Dim i, c, a, tmp

  tmp = ""

  For i = 1 To Len(Str)

  c = Mid(Str, i, 1)

  a = ascw(c)

  If (a>= 48 And a<= 57) Or (a>= 65 And a<= 90) Or (a>= 97 And a<= 122) Then

  tmp = tmp & c

  ElseIf InStr("@*_+-./", c) > 0 Then

  tmp = tmp & c

  ElseIf a>0 And a<16 Then

  tmp = tmp & "%0" & Hex(a)

  ElseIf a>= 16 And a<256 Then

  tmp = tmp & "%" & Hex(a)

  Else

  tmp = tmp & "%u" & Hex(a)

  End If

  Next

  escape = tmp

  End Function

  '函数:Escape解密

  Function unescape(byval Str)

  If IsNull(Str) Then Exit Function

  Dim i, c, tmp

  tmp = ""

  For i = 1 To Len(Str)

  c = Mid(Str, i, 1)

  If Mid(Str, i, 2) = "%u" And i<= Len(Str) -5 Then

  If IsNumeric("&H" & Mid(Str, i + 2, 4)) Then

  tmp = tmp & chrw(CInt("&H" & Mid(Str, i + 2, 4)))

  i = i + 5

  Else

  tmp = tmp & c

  End If

  ElseIf c = "%" And i<= Len(Str) -2 Then

  If IsNumeric("&H" & Mid(Str, i + 1, 2)) Then

  tmp = tmp & chrw(CInt("&H" & Mid(Str, i + 1, 2)))

  i = i + 2

  Else

  tmp = tmp & c

  End If

  Else

  tmp = tmp & c

  End If

  Next

  unescape = tmp

  End Function