復制代碼 代碼如下:
'過程:輸出字符串[代替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