服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - ASP教程 - one.asp多项目、函数库、类库 统一为一个版本的方法

one.asp多项目、函数库、类库 统一为一个版本的方法

2020-09-22 13:50苗启源 ASP教程

前几天 写的博客 多项目 函数库、类库 统一为一个版本的方法中提到 使用 one.php 将整个项目打包成 一个 php 文件,有网友 让我 整个asp版本的,今天下午抽空写了个 one.asp,使用方式基本一致,这次 增加了路径计算的功能,可以引

前几天 写的博客 多项目 函数库类库 统一为一个版本的方法中提到 使用 one.php 将整个项目打包成 一个 php 文件,有网友 让我 整个asp版本的,今天下午抽空写了个 one.asp,使用方式基本一致,这次 增加了路径计算的功能,可以引用不同路径。

举个简单的应用场景,开发一个小的API系统,支持 XML、JSON输出。区别是 基础版(dev/dev.asp)只支持 Access,VIP版本(dev/vip.asp)支持 Access + SQL Server。这样VIP版本就需要在现在的基础上 增加 sqlserver的支持,增加额外的 配置项。开发过程只需要 按正常开发即可。

one.asp多项目、函数库、类库 统一为一个版本的方法

开发完毕后,通过 one.asp 打包成 index.asp 和 vip.asp 两个版本,整套程序都是一个独立的文件。

one.asp多项目、函数库、类库 统一为一个版本的方法

下图演示了 解析过程:

one.asp多项目、函数库、类库 统一为一个版本的方法

完整的测试代码 可以 访问:oneasp.rar 下载

核心代码 如下:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
' ====================================================
' 类名:One
' 作者:mqycn
' 博客:http://www.miaoqiyuan.cn
' 源码:http://www.miaoqiyuan.cn/p/one-php
' 说明:多项目 函数库、类库 统一为一个版本的方法
' ====================================================
Class OneAsp
  Private FSO
  Private Root
   
  Private Sub Class_Initialize()
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")
  End Sub
   
  Private Sub Class_Terminate()
    Set FSO = Nothing
  End Sub
   
  Public Function Run(ByVal sourceFile, ByVal saveFile)
    Run = "<hr><b>Input:</b>" & sourceFile & "<br><b>Result:</b>" & Save(saveFile, Include(sourceFile))
  End Function
   
   
  Public Function Include(ByVal path)
    Dim tmpPath, tmpItem, arrPath, index
    tmpPath = ""
    arrPath = Split(path, "/")
    For index = 0 To UBound(arrPath) - 1
      tmpItem = arrPath(index)
      tmpPath = tmpPath & tmpItem & "/"
    Next
    Include = Parse(tmpPath, arrPath(UBound(arrPath)))
  End Function
   
  Private Function Parse(ByVal root, ByVal fileName)
    Call SetRoot(root)
    Dim html
    html = OpenRead(fileName)
     
    Dim preg, pregResult
    Set preg = New Regexp
    preg.pattern = "<!--#include file=""([^""]*)""-->"
    preg.global = True
    preg.ignorecase = True
     
    Dim htmlInclude
    Set pregResult = preg.execute(html)
    For Each htmlInclude In pregResult
      html = Replace(html, htmlInclude, Include(root & htmlInclude.submatches(0)))
    Next
     
    Parse = "<% '" & root & fileName & " Start %" & ">" & vbCrLf & html & vbCrLf & "<%  '" & root & fileName & " End %" & ">" & vbCrLf
  End Function
   
  Private Function SetRoot(ByVal rootPath)
    If Right(rootPath, 1) <> "/" Then rootPath = rootPath & "/"
    Root = rootPath
  End Function
   
  Private Function RealPath(ByVal path)
    RealPath = Server.Mappath(Root & path)
  End Function
   
  Private Function OpenRead(ByVal path)
    Dim txtFile
    Set txtFile = FSO.OpenTextFile(RealPath(path))
    OpenRead = txtFile.ReadAll()
    txtFile.close
    On Error GoTo 0
  End Function
   
  Public Function Save(ByVal path, ByVal body)
    Dim txtFile
    Set txtFile = FSO.CreateTextFile(Server.Mappath(path))
    txtFile.write body
    txtFile.close
    Set txtFile = Nothing
    Save = path
  End Function
   
End Class

使用也非常简单,使用 Call new OneAsp.run(开发版, 打包版),可以 dev.asp 中的所有包含的代码 打包到 index.asp,如果只想获取解析的内容,可以使用 Response.Write Server.Htmlencode(Call new OneAsp.include(开发版))

原文链接:http://www.miaoqiyuan.cn/p/one-asp

延伸 · 阅读

精彩推荐
  • ASP教程asp实现后台添加wma视频文件前台显示

    asp实现后台添加wma视频文件前台显示

    想用asp来实现后台添加wma视频文件,前台显示所添加的这个视频文件,本文提供实现代码...

    服务器之家3402019-07-10
  • ASP教程NAV导致IIS调用FSO失败的解决方法

    NAV导致IIS调用FSO失败的解决方法

    症状: 当你浏览调用FileSystemObject的ASP页面时, 对页面的请求处于停止状态并最终导致页面在浏览器中的超时。 原因: 这种问题是因为 Norton Antivirus 软件...

    asp教程网5492019-11-01
  • ASP教程asp中通过fso读取和生成UTF-8编码的txt

    asp中通过fso读取和生成UTF-8编码的txt

    利用fso.OpenTextFil读取UTF-8文件或者用FSO.save生成UTF-8文件时乱码解决办法生成静态页使用的方法是读取asp页面的html代码,保存为html文件,这种方法...

    ASP之家4712019-07-07
  • ASP教程一种理论上最快的Web数据库分页方法

    一种理论上最快的Web数据库分页方法

    出了一种理论上最佳的分页方法,本篇我们就来详细说说这种最佳的分页方法。 一:构思。 在设计Web数据库时,如果我们要编历每一条纪录,那么只有采取...

    asp教程网5642019-10-26
  • ASP教程ASP.NET 简介

    ASP.NET 简介

    本节对 ASP.NET 进行概括,介绍了 ASP.NET 的服务器技术、开发工具以及文件扩展名。 经典 ASP Active Server Pages(动态服务器页面) ASP ,全称 Active Server Pages(...

    未知1392023-05-08
  • ASP教程ASP所有的Session变量获取实现代码

    ASP所有的Session变量获取实现代码

    在程序调试中,有时候需要知道有多少Session变量在使用,她们的值如何?由于Session对象提供一个称为Contents的集合(Collection),我们可以通过For...Each循环来...

    asp教程网3532019-09-10
  • ASP教程asp 中文乱码问题解决方法

    asp 中文乱码问题解决方法

    不管什么语言乱码问题都存在,asp也不例外,本文将介绍asp中解决乱码方法,需要的朋友可以参考下...

    ASP之家6472019-07-10
  • ASP教程一份ASP内存的释放的实验报告

    一份ASP内存的释放的实验报告

    实验目的:验证主动释放内存变量是否有价值. 实验原始代码: script language=vbscript runat=server Dim temp1,temp2 temp1 = space(1024*1024*50) 50MB for i = 0 to 5000000 延迟 next t...

    asp教程网5052019-10-30