gpt4 book ai didi

分享一个好东东,动态Include文件 (Dynamic File Includes)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章分享一个好东东,动态Include文件 (Dynamic File Includes)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

早在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   %> 。

最后此篇关于分享一个好东东,动态Include文件 (Dynamic File Includes)的文章就讲到这里了,如果你想了解更多关于分享一个好东东,动态Include文件 (Dynamic File Includes)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com