日期:2011-07-25  浏览次数:20856 次

一个显示原代码的asp程序

 我们都知道asp这一类的服务器端处理的程序,其好处之一就是只向客户端输出标准的Html流。因此可以起到向客户隐藏细节的作用。也就是说当我们在浏览器中键入asp程序的网址后只能看见标准的Html文件,而不能看见asp的内容。但有时,例如在一个asp的教学站点,我们有必要显示asp文件的内容,或者你愿意将你的原代码与人享,通过一个程序将代码显示出来。

  下面是我编写的一个asp程序,view_code.asp,它提供两种提交方式:

  一种是用表格提交,即你知道了该源文件的物理地址(类似于:c:\asp_source\test.asp的形式)。
  一种是采用get方式提交(类似于:< a href="view_code.asp?code_path= < %=server.mappath(request.servervariables("PATH_INFO"))% >&cgi_type=asp" >

点击此处查看原代码< /a >)。另外它还支持两种cgi脚本,一种是asp,一种是php。

代码段:

< %

on error resume next

’忽略程序执行中的错误,在程序的最后统一处理。

% >

< %

function rt_min(num1,num2)

’该子程序用于返回两数中不等于零的最小数。

if num1=0 and num2=0 then

rt_min=-1

elseif num1=0 then

rt_min=num2

elseif num2=0 then

rt_min=num1

elseif num1

rt_min=num1

else

rt_min=num2

end if

end function

% >

< %

function line_check(strline,cgi_type)

’该子程序用于检查输入段中是否包含有"< %、% >、< script >或< /script的特殊字符

dim cgi_flag

if cgi_type="php" then

cgi_flag="?"

else

cgi_flag="%"

end if

’定义的cgi_flag用于代表php和asp的不同标识符

line_check=0

itemp=0

ipos=instr(strline,"<"&cgi_flag)

if rt_min(ipos,itemp)=ipos then

itemp=ipos

line_check=1

end if

ipos=instr(strline,cgi_flag&" >")

if rt_min(ipos,itemp)=ipos then

itemp=ipos

line_check=2

end if

ipos=instr(1,strline,"<"&"script",1)

if rt_min(ipos,itemp)=ipos then

itemp=ipos

line_check=3

end if

ipos=instr(1,strline,"<"&"/script",1)

if rt_min(ipos,itemp)=ipos then

itemp=ipos

line_check=4

end if

end function

% >