我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > 显示ASP页面的代码
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
在JSP中访问数据库大全(10-23)
ASP教程十一、调试ASP脚本(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

显示ASP页面的代码 

作者:   来源:   点击:   日期:2006-10-26

 

<%
'*************************************************************
'在支持FSO的情况下,可以显示本站内的所有ASP页面的代码
'适用于代码演示时在效果页面上直接显示该页面的代码而不用再对代码制作专门的页面
'使用方法:ViewSource.asp?file=要显示的文件名
'如:ViewSource.asp?file=x.asp
'modify By : Babyt
'*************************************************************

%>
<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, "&lt;%", 1) = I Then
    strTemp = strTemp & "<FONT COLOR=#0000EE>"
    bInsideScript = True
   Else
    '判断结束标志位 % >
    If InStr(I, strIn, "%&gt;", 1) = I Then
     strTemp = strTemp & "%&gt;</FONT>"
     bCharWritten = True
     ' so we dont get the trailing end of this tag again!
     ' ie. Len("%&gt;") - 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, "&quot;", 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>&nbsp;&nbsp;" & strTemp & vbCRLF
  linecount = linecount + 1
 Loop
 Response.Write "</PRE>" & vbCRLF

 objInFile.Close
 Set objInFile = Nothing
 Set objFSO = Nothing
End If
%>



文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP 写的判断 Money 各个位值的函数 ·asp开发中textarea常见问题
·ADO组件之分页程序 ·ASP在线升级类文件
·ASP开发网页牢记注意事项 ·ASP技巧

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。