one.asp 다 중 항목,함수 라 이브 러 리,라 이브 러 리 를 하나의 버 전 으로 통일 하 는 방법

며칠 전에 쓴 블 로그 다 중 항목 함수 라 이브 러 리,라 이브 러 리 를 한 버 전 으로 통일 하 는 방법 에서 one.php 를 사용 하여 전체 항목 을 phop 파일 로 포장 하 는 것 을 언급 했 습 니 다.어떤 네티즌 이 저 에 게 전체 asp 버 전 을 주 었 습 니 다.오늘 오후 에 시간 을 내 서 one.asp 를 썼 습 니 다.사용 방식 이 대체적으로 일치 합 니 다.이번 에는 경로 계산 기능 을 추가 하여 서로 다른 경 로 를 참조 할 수 있 습 니 다.
간단 한 응용 장면 을 들 어 XML,JSON 출력 을 지원 하 는 작은 API 시스템 을 개발 합 니 다.기본 버 전(dev/dev.asp)은 Access 만 지원 하고 VIP 버 전(dev/vip.asp)은 Access+SQL Server 만 지원 하 는 것 과 구별 된다.이렇게 하면 VIP 버 전 은 현재 의 기초 위 에서 sqlserver 의 지원 을 추가 하고 추가 설정 항목 을 추가 해 야 한다.개발 과정 은 정상 적 인 개발 만 하면 된다.

개발 이 끝 난 후,one.asp 를 통 해 index.asp 와 vip.asp 두 버 전 으로 포장 되 었 으 며,전체 프로그램 은 하나의 독립 된 파일 입 니 다.

다음 그림 은 분석 과정 을 보 여 줍 니 다:

전체 테스트 코드 접근 가능:oneasp.rar다운로드
핵심 코드 는 다음 과 같 습 니 다.

' ====================================================
'   :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(개발 판)를 사용 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기