濮阳杆衣贸易有限公司

主頁 > 知識庫 > 分享一個好東東,動態(tài)Include文件 (Dynamic File Includes)

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

熱門標簽:地圖標注還可以做嗎 硅基電話機器人加盟 電銷機器人采購 高質(zhì)量的電銷外呼系統(tǒng) 宿州防封外呼系統(tǒng)平臺 滴滴地圖標注上車點 無營業(yè)執(zhí)照地圖標注教學 外呼系統(tǒng)怎么話費 友邦互聯(lián)電銷機器人違法嗎
早在03年就在藍色理想上看到過動態(tài)Include的文章,當時已經(jīng)覺得很厲害,但實際應用了一下,不方便而且Include的效果不好.

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

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

今天,我一定要記住今天~~~在國外的一個網(wǎng)站上我竟然發(fā)現(xiàn)了這樣一個好東東,太棒了~~~Great works!!!

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

現(xiàn)在這個鬼佬(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 
%>

標簽:江門 錫林郭勒盟 雅安 宣城 新余 儋州 七臺河 廣元

巨人網(wǎng)絡通訊聲明:本文標題《分享一個好東東,動態(tài)Include文件 (Dynamic File Includes)》,本文關鍵詞  分享,一個,好,東東,動態(tài),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《分享一個好東東,動態(tài)Include文件 (Dynamic File Includes)》相關的同類信息!
  • 本頁收集關于分享一個好東東,動態(tài)Include文件 (Dynamic File Includes)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    泗水县| 舞钢市| 油尖旺区| 云安县| 吴堡县| 财经| 南澳县| 太和县| 东兰县| 济宁市| 宁德市| 新郑市| 盐津县| 云霄县| 张掖市| 黄山市| 大姚县| 厦门市| 中方县| 浮山县| 逊克县| 星子县| 大埔区| 江源县| 徐汇区| 苏尼特右旗| 长顺县| 碌曲县| 双峰县| 威远县| 桦川县| 格尔木市| 桂阳县| 西丰县| 商洛市| 淄博市| 福贡县| 邮箱| 深水埗区| 休宁县| 新干县|