激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - 分享一個好東東,動態Include文件 (Dynamic File Includes)

分享一個好東東,動態Include文件 (Dynamic File Includes)

2019-09-27 09:12asp開發網 ASP教程

相信很多ASP開發者都會抱怨ASP的Include方式太老土了,以的方式加載文件實在是太不舒服了,在實際項目中不管我是不是一開始就要用到這個文件,我總得早早的把它Include進來...這方面PHP就舒服很多...什么時候用,什么時候In...

早在03年就在藍色理想上看到過動態Include的文章,當時已經覺得很厲害,但實際應用了一下,不方便而且Include的效果不好. 

后來又在一網站上看到了改進版的,但是也不太好用~~~ 

哎,當時我真是覺得有點想放棄ASP了,但是由于公司還是用ASP來開發,我也是沒有辦法... 

今天,我一定要記住今天~~~在國外的一個網站上我竟然發現了這樣一個好東東,太棒了~~~Great works!!! 

以前試的一些動態Include代碼,都無法Include一個類,甚至函數~~~又或者Include文件中的Include無法被包含... 

現在這個鬼佬(dselkirk)寫的類可以為我們做到這些了~~~

復制代碼代碼如下:


<%  
  public include, include_vars  
  set include = new cls_include  

  class cls_include  

    private sub class_initialize()  
      set include_vars = server.createobject("scripting.dictionary")  
    end sub  
    private sub class_deactivate()  
      arr_variables.removeall  
      set include_vars = nothing  
      set include = nothing  
    end sub  

    public default function include(byval str_path)  
      dim str_source  
      if str_path <> "" then  
        str_source = readfile(str_path)  
        if str_source <> "" then  
          processincludes str_source  
          convert2code str_source  
          formatcode str_source  
          if str_source <> "" then  
            if request.querystring("debug") = 1 then  
              response.write str_source  
              response.end  
            else  
              executeglobal str_source  
              include_vars.removeall  
            end if  
          end if  
        end if  
      end if  
    end function  

    private sub convert2code(str_source)  
      dim i, str_temp, arr_temp, int_len  
      if str_source <> "" then  
        if instr(str_source,"%" & ">") > instr(str_source,"<" & "%") then  
          str_temp = replace(str_source,"<" & "%","|%")  
          str_temp = replace(str_temp,"%" & ">","|")  
          if left(str_temp,1) = "|" then str_temp = right(str_temp,len(str_temp) - 1)  
          if right(str_temp,1) = "|" then str_temp = left(str_temp,len(str_temp) - 1)  
          arr_temp = split(str_temp,"|")  
          int_len = ubound(arr_temp)  
          if (int_len + 1) > 0 then  
            for i = 0 to int_len  
              str_temp = trim(arr_temp(i))  
              str_temp = replace(str_temp,vbcrlf & vbcrlf,vbcrlf)  
              if left(str_temp,2) = vbcrlf then str_temp = right(str_temp,len(str_temp) - 2)  
              if right(str_temp,2) = vbcrlf then str_temp = left(str_temp,len(str_temp) - 2)  
              if left(str_temp,1) = "%" then  
                str_temp = right(str_temp,len(str_temp) - 1)  
                if left(str_temp,1) = "=" then  
                  str_temp = right(str_temp,len(str_temp) - 1)  
                  str_temp = "response.write " & str_temp  
                end if  
              else  
                if str_temp <> "" then  
                  include_vars.add i, str_temp  
                  str_temp = "response.write include_vars.item(" & i & ")"   
                end if  
              end if  
              str_temp = replace(str_temp,chr(34) & chr(34) & " & ","")  
              str_temp = replace(str_temp," & " & chr(34) & chr(34),"")  
              if right(str_temp,2) <> vbcrlf then str_temp = str_temp  
              arr_temp(i) = str_temp  
            next  
            str_source = join(arr_temp,vbcrlf)  
          end if  
        else  
          if str_source <> "" then  
            include_vars.add "var", str_source  
            str_source = "response.write include_vars.item(""var"")"  
          end if  
        end if  
      end if  
    end sub  

    private sub processincludes(str_source)  
      dim int_start, str_path, str_mid, str_temp  
      str_source = replace(str_source,"<!-- #","<!--#")  
      int_start = instr(str_source,"<!--#include")  
      str_mid = lcase(getbetween(str_source,"<!--#include","-->"))  
      do until int_start = 0  
        str_mid = lcase(getbetween(str_source,"<!--","-->"))  
        int_start = instr(str_mid,"#include")  
        if int_start >  0 then  
          str_temp = lcase(getbetween(str_mid,chr(34),chr(34)))  
          str_temp = trim(str_temp)  
          str_path = readfile(str_temp)  
          str_source = replace(str_source,"<!--" & str_mid & "-->",str_path & vbcrlf)  
        end if  
        int_start = instr(str_source,"#include")  
      loop  
    end sub  

    private sub formatcode(str_code)  
      dim i, arr_temp, int_len  
      str_code = replace(str_code,vbcrlf & vbcrlf,vbcrlf)  
      if left(str_code,2) = vbcrlf then str_code = right(str_code,len(str_code) - 2)  
      str_code = trim(str_code)  
      if instr(str_code,vbcrlf) > 0 then  
        arr_temp = split(str_code,vbcrlf)  
        for i = 0 to ubound(arr_temp)  
          arr_temp(i) = ltrim(arr_temp(i))  
          if arr_temp(i) <> "" then arr_temp(i) = arr_temp(i) & vbcrlf  
        next  
        str_code = join(arr_temp,"")  
        arr_temp = vbnull  
      end if  
    end sub  

    private function readfile(str_path)  
      dim objfso, objfile  
      if str_path <> "" then  
        if instr(str_path,":") = 0 then str_path = server.mappath(str_path)  
        set objfso = server.createobject("scripting.filesystemobject")  
        if objfso.fileexists(str_path) then  
          set objfile = objfso.opentextfile(str_path, 1, false)  
          if err.number = 0 then  
            readfile = objfile.readall  
            objfile.close  
          end if  
          set objfile = nothing  
        end if  
        set objfso = nothing  
      end if  
    end function  

    private function getbetween(strdata, strstart, strend)  
      dim lngstart, lngend  
      lngstart = instr(strdata, strstart) + len(strstart)  
      if (lngstart <> 0) then  
        lngend = instr(lngstart, strdata, strend)  
        if (lngend <> 0) then  
          getbetween = mid(strdata, lngstart, lngend - lngstart)  
        end if  
      end if  
    end function  

  end class  
%>

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人偷拍片视频在线观看 | 老司机免费福利午夜入口ae58 | 99在线啪| 激情在线免费观看 | a级高清免费毛片av在线 | 久久综合伊人 | xfplay噜噜av| 免费网站看毛片 | 国产精品久久久久免费视频 | 网站久久| 日韩在线播放中文字幕 | 欧美一级全黄 | 久久久久中精品中文字幕19 | 欧美成人一二三区 | 欧美精品一级片 | 色域tv | 九九精品在线观看视频 | 欧美成人aaaaaaaa免费 | www.48xx.com| 91视频第一页 | 日本人乱人乱亲乱色视频观看 | 中文字幕精品一二三四五六七八 | 宅男噜噜噜66一区二区 | 欧美一级特级 | 中文字幕亚洲情99在线 | 少妇一级淫片免费放播放 | www视频免费在线观看 | 国产亚洲精久久久久久蜜臀 | 国产精品午夜在线观看 | 中文在线观看www | 成人国产在线看 | 一级毛片在线观看视频 | 久久久久久久国产视频 | 久草在线最新 | 国产一级桃视频播放 | 悠悠成人资源亚洲一区二区 | 亚洲综合视频一区 | 日韩黄色免费观看 | 性色吧| 成人在线第一页 | 天天草夜夜爽 |