asp仿php的一些函数分享

时间:2022-09-23 09:00:12

代码如下:


'过程:输出字符串[代替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