고객센터 : 031-548-0481 /호스팅문의:1644-2646 /서버호스팅문의 : 070-7573-5515/ 평일근무 : 09:00~18:00 / 토/일요일, 공휴일 휴무

1:1 고객상담문의 FAQ 자동답변

나노코팅 나노엔

구매안내

  • 아티보드 2.0
  • 아티보드 3.0
  • 아티카페
  • 파일공유사이트
솔루션 > 커뮤니티 > 사용팁

사용팁|

ASP 소스 보기|아티보드3.0

  • 최백호
  • |조회수 : 2880
  • |추천수 : 0
  • |2011-11-25 오후 5:25:08

정해준 경로의 소스를 출력하는 함수를 간단하게 만들어보았습니다.

당연한 말이겠지만 같은 사이트 내의 소스만 출력이 됩니다.


 

<%
function show_source(url)
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")

strFilepath = Server.Mappath(url)
Set oFile = oFSO.OpenTextFile(strFilepath, 1)

strText = oFile.ReadAll

Set oFile = nothing
Set oFSO = nothing

strText = Replace(strText, "&", "&amp;")
strText = Replace(strText, "<", "&lt;")
strText = Replace(strText, " ", "&nbsp;")
strText = Replace(strText, vbTab, "&nbsp;&nbsp;&nbsp;&nbsp;")
strText = Replace(strText, vbCrLf, "<br>")

show_source = strText
end function
%>

<code>
<%=show_source("show_source.asp")%>
</code>


 

Replace 부분에서 매번 strText 변수에 재할당하지 않고 한줄로 한번에 변환하는 것이 실행 효율이 조금 더 낫지만, 저렇게 Replace 항목이 많은 경우에는 여러줄로 나누어 보기 좋게 해주는 것이 수정을 편하게 하여 유지보수 생산성이 높아집니다.


 

<code> 태그는 코드를 화면에 출력할때 사용하는 <xmp> 태그와 유사한 동작을 합니다.

함수내에서 화면 출력에 필요한 작업을 이미 대부분 해놓은 상태이므로 코드 출력용 태그는 사실상 불필요합니다. 위의 경우는 단순히 보기 좋으라고 <code> 태그를 붙여놓은 것이므로 제거하셔도 무방합니다.


 

참고로 <code> 태그 위치에 <xmp> 태그를 대신 사용하면 사소한 문제가 하나 생기니 주의하시길 바랍니다.


 

============================================================================================================================

늦어지만 저도 답변달아 봅니다.

아래와 같이 보여지게 만들어 줍니다.


<%

Sub viewCode(codefile)
response.write "<p style=""background-color=#eeeeee;"">"
set fso = server.createobject("scripting.filesystemobject")
set f = fso.opentextfile(server.mappath(codefile),1)
allViewCode = viewHTML(f.readall)
set f = nothing
response.write codingcolor(allviewcode,"brown")
response.write "</p>"
End Sub

'Coding부분을 찾아서 Coloring함수로...
function CodingColor(strTemp,strFontColor)
Dim firstPos
Dim lastPos
Dim leftString
Dim midString
Dim rightString
Dim xmidString

firstPos =1
lastPos = 1
do until lastPos >= len(strTemp)
firstPos = instr(lastPos, strTemp, "&lt;%")
if firstPos <= 0 then
exit do
end if
lastPos = instr(firstPos, strTemp, "%&gt;")
if lastPos <= 0 then
lastPos = len(strTemp)
end if
lastPos = lastPos + len("%&gt;") - 1
leftString = left(strTemp,firstPos-1)
midString = mid(strTemp,firstPos,lastPos-firstPos+1)
rightString = mid(strTemp,lastPos+1,len(strTemp)-lastPos)
xmidString = coloring(midString)
' strTemp = leftString & xmidString & rightString
' lastPos = firstPos + len(xmidString)-1
strTemp = leftString & "<span style=color:" & strFontColor & ";>" & xmidString & "</span>" & rightString
lastPos = firstPos + len("<span style=color:" & strFontColor & ";>" & xmidString & "</span>")-1
loop

CodingColor = strTemp
end function

function coloring(strViewCode)
Dim Reservedwords
Dim aryReservedword
Dim i
Dim strFunction
Dim aryFunction

Reservedwords="AndlCalllCaselConstlDimlDolEachlElselElseIflEmptylEndlEqvlEraselErrorlExitlExplicitlFalselForlFunctionlIflImplInlIslLooplModlNextlNotlNothinglNulllOnlOptionlOrlPrivatelPubliclRandomizelReDimlResumelSelectlSetlSteplSublThenlTolTruelUntillWendlWhilelXor"
aryReservedword=split(Reservedwords,"l")
for i = 0 to ubound(aryReservedword)
strViewCode = wordReplace(strViewCode,aryReservedword(i),"blue")
next

strFunction="AnchorlArraylAsclAtnlCBoollCBytelCCurlCDatelCDbllChrlCIntlCLnglCoslCreateObjectlCSnglCStrlDatelDateAddlDateDifflDatePartlDateSeriallDateValuelDaylDictionarylDocumentlElementlErrlExplFileSystemObjectlFilterlFixlIntlFormlFormatCurrencylFormatDateTimelFormatNumberlFormatPercentlGetObjectlHexlHistorylHourlInputBoxlInStrlInstrRevlIsArraylIsDatelIsEmptylIsNulllIsNumericlIsObjectlJoinlLBoundlLCaselLeftlLenlLinklLoadPicturelLocationlLoglLTrimlRTrimlTrimlMidlMinutelMonthlMonthNamelMsgBoxlNavigatorlNowlOctlReplacelRightlRndlRoundlScriptEnginelScriptEngineBuildVersionlScriptEngineMajorVersionlScriptEngineMinorVersionlSecondlSgnlSinlSpacelSplitlSqrlStrComplStringlStrReverselTanlTimelTextStreamlTimeSeriallTimeValuelTypeNamelUBoundlUCaselVarTypelWeekdaylWeekDayNamelWindowlYear"
aryFunction=split(strFunction,"l")
for i = 0 to

댓글 0

번호 제목 닉네임 조회수 작성일
35 windows server 2008 에서의 iis7에서 asp 작동시.. [1] Skynote 3055 2011.06.27
34 Microsoft® SQL Server® 2008 Express .. 최백호 2558 2011.11.25
33 jquery를 이용한 오른쪽 퀵메뉴 최백호 2787 2011.11.25
32 GeoIP 국가별 IP 체크 방법 file 최백호 2786 2011.11.25
ASP 소스 보기 최백호 2880 2011.11.25
30 실시간 검색어 순위 순서대로 보여주기 최백호 2924 2011.11.25
29 Jquery 체크박스 사용법 최백호 2534 2011.11.25
28 ABC Upload 의 라이센스문제 file 최백호 3262 2011.12.09
27 TABS Upload 4.3 x86 - 4.0 x86 버전 입니다. .. file photo 최백호 3956 2011.12.20
26 마이페이지 [2] 일천 2433 2012.05.24
25 아티보드 3.0 팝업 띠우기 일천 2745 2012.06.20
24 아티보드 3.0 SSL로그인 일천 2510 2013.04.12
23 게시판 글쓰기에 컬럼을 추가하고 싶습니다. [1] 이성제 2270 2014.06.17
22 스크립트가 먹히질 않습니다. 이성제 2109 2014.07.06
21 댓글과 관련하여 문의 드립니다. secret mizy 1495 2014.07.29
20 "글등록" 버튼을 누르면 "내용을 입력해 주세요" 경고창이 뜹니다. [2] 와이즈 2396 2014.08.07
19 아티보드 설치중에 자꾸이런오류가뜹니다.. [2] 가리벙 2390 2014.09.12
18 게시판에 iframe 넣을순 없나요? [1] 정미숙 2356 2014.10.19
17 구매결제시 에러 나요 [1] 딸기우유주까 2371 2014.10.20
16 최신글이 아래쪽에 나타나게 하려면 어떻게 하나요? [1] 정미숙 2242 2015.01.05