显示ASP页面源码的代码
作者:Babyt 时间:2008-10-12 13:05:00
在支持FSO的情况下,可以显示本站内的所有ASP页面的代码
适用于代码演示时在效果页面上直接显示该页面的代码而不用再对代码制作专门的页面
使用方法:ViewSource.asp?file=要显示的文件名
如:ViewSource.asp?file=x.asp
<B Style="font-size:12px;font-family:Courier New">HTML/ASP Source Code:</B>
<HR SIZE=1>
<%
Dim objFSO, objInFile
Dim strIn, strTemp
Dim I, J
Dim strFileName
Dim ProcessString
Dim bCharWritten
Dim bInsideScript
Dim bInsideString
Dim iInsideComment
ProcessString = 0
bCharWritten = False
bInsideScript = False
bInsideString = False
iInsideComment = 0
linecount = 1
strFileName = Request.QueryString("file")
'为了保护你的其他页面,进行简单保护,只允许访问当前目录下的文件
'你可以根据实际需要增加更过规则
If InStr(1, strFileName, "\", 1) Then strFileName=""
If InStr(1, strFileName, "/", 1) Then strFileName=""
If strFileName <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
'判断文件是否存在
If objFSO.FileExists(Server.MapPath(strFileName))=False Then
Response.Write "文件不存在"
Response.End
End If
'打开文件
Set objInFile = objFSO.OpenTextFile(Server.MapPath(strFileName))
Response.Write "<PRE Style='font-size:12px;font-family:Courier New'>" & vbCRLF
'按行读取文本流
Do While Not objInFile.AtEndOfStream
'进行编码
strIn = Server.HTMLEncode(objInFile.ReadLine)
strTemp = ""
'判断起始 < %
'对整个脚本快加亮,n默认蓝色
For I = 1 to Len(strIn)
bCharWritten = False
If InStr(I, strIn, "<%", 1) = I Then
strTemp = strTemp & "<FONT COLOR=#0000EE>"
bInsideScript = True
Else
'判断结束标志位 % >
If InStr(I, strIn, "%>", 1) = I Then
strTemp = strTemp & "%></FONT>"
bCharWritten = True
' so we dont get the trailing end of this tag again!
' ie. Len("%>") - 1 = 4
I = I + 4
bInsideScript = False
End If
End If
' Toggle Inside String if needed!
If bInsideScript And iInsideComment = 0 And InStr(I, strIn, """, 1) = I Then bInsideString = Not bInsideString
'判断可能的注释,主要是为了改变其颜色(默认绿色)
If bInsideScript And Not bInsideString And (InStr(I, strIn, "'", 1) OR InStr(I, strIn, "//", 1)) = I Then
strTemp = strTemp & "<FONT COLOR=#009900>"
iInsideComment = iInsideComment + 1
End If
' 结束注释文字处理
If iInsideComment > 0 And I = Len(strIN) Then
strTemp = strTemp & Mid(strIn, I, 1)
For J = 1 to iInsideComment
strTemp = strTemp & "</FONT>"
Next 'J
bCharWritten = True
iInsideComment = 0
End If
If bCharWritten = False Then
strTemp = strTemp & Mid(strIn, I, 1)
End If
Next
'此句写行号,可以把行号去掉
Response.Write "<FONT COLOR=#666666>" & linecount & "</font> " & strTemp & vbCRLF
linecount = linecount + 1
Loop
Response.Write "</PRE>" & vbCRLF
objInFile.Close
Set objInFile = Nothing
Set objFSO = Nothing
End If
%>
标签:fso,源码,asp
0
投稿
猜你喜欢
探索网页设计中的黄金比例
2008-10-20 12:26:00
DreamweaverMX Ultradev探索:技巧荟萃
2010-07-13 12:10:00
SQL Server中ISNULL函数介绍
2009-09-09 21:23:00
教你隐藏ACCESS数据库的表名
2008-05-09 19:45:00
请站在用户的角度上说话
2009-05-12 12:03:00
Mysql 数据库双机热备的配置方法
2010-06-09 19:13:00
去除DW MX 2004表格宽度辅助
2010-09-02 12:37:00
如何实现优惠打折?
2010-06-03 10:27:00
Laravel中数据库迁移操作的示例详解
2023-05-25 06:27:38
了解WEB页面工具语言XML(五)好处
2008-09-05 17:19:00
asp如何对数组显示和排序?
2009-11-20 18:30:00
MySQL表设计优化与索引 (三)
2010-10-25 20:05:00
Firefox Bug: inline/inline-block的间隙
2009-11-03 13:20:00
sqlserver 巧妙的自关联运用
2012-07-21 14:55:12
SQL的Join使用图解教程
2012-08-21 10:47:23
MySQL存储过程savepoint rollback to
2008-12-03 16:02:00
asp智能脏话过滤系统v1.0
2011-04-14 11:00:00
常用的JavaScript表单验证正则表达式收集
2008-02-29 08:34:00
基于RSA算法在asp中加密与解密对应的函数
2007-11-07 21:39:00
ASP Google的translate API代码
2011-04-03 11:16:00