我的问题是读取ASP文件,而不是在ASP或HTML中呈现它们。当结果显示到屏幕上时,我需要它们是文本格式的。我的意思是,所有的HTML标记,如<html>和<script>,都是呈现而不是显示的。因此,它不会将单词<style>打印到屏幕上,而是执行命令,如果可能的话,这与我希望发生的情况正好相反。
更复杂的是,在解决了这个问题之后,我遇到了以前遇到的一个问题,对于ASP块的<%和%>标记,很难做同样的事情,这显然只是在需要它来显示结果时运行块。
总结-我试图从asp文件中获取纯文本,就好像它只是一个文本文件,而不是执行ASP经典段。然后,我需要在替换或regex系统中运行每一行,然后使用我自己的CSS标记将呈现放回原处,考虑一个自制IDE类型系统,当我指定要触发的特定显示元素时,它会标记这些行。我想为CSS样式设置自定义标签,所以当我显示每一行时,我会用颜色和样式标记它们,这样在屏幕上视觉上就更有意义了,例如,在屏幕上读取这一行时,会使屏幕上出现深蓝色。我希望这是有意义的,我会提供任何代码,你想看。
编辑-摘要只是给您提供范围,主要问题是如何在不执行html或asp经典代码的情况下将文本流作为文本在屏幕上显示。也许,将一些javascript与之混合起来可能是一种好方法吗?我只是觉得可能有一种纯粹的ASP经典的方式来做这个,它可以如何处理读取文件等。
IF VALIDATED_PAGE <> "" THEN
set fs=Server.CreateObject("Scripting.FileSystemObject") 'Create a File Object to access files
set fso = Server.CreateObject("Scripting.FilesystemObject") 'Create a File Object to access files
fs.CopyFile ASP_FILE_LOCATION,EDT_FILE_FORMAT_LOCATION
'Copy the ASP file we want to edit into a .EDT extension
set txt = fso.OpenTextFile(EDT_FILE_FORMAT_LOCATION) 'Set the Text from to use this EDIT File
LINECOUNT = 0 'Set this to ZERO to do manual line number tracking must start at zero
do while txt.AtEndOfStream = false 'Do these thing while the text file is NOT End Of Stream (END)
LINECOUNT = LINECOUNT + 1 'Increase the Line Count number as we go through the file
Response.Write("<LABEL class='LINENUMBER'>LINE#" & LINECOUNT & "</label>") 'Mark and display the line numbers
IF NOT txt.AtEndOfStream THEN
IF InStr(txt.Readline,"div_a1") >= 1 then
response.write "A1FOUND"
NEWLINE = Replace(txt.Readline,"div_a1",("<label style='color:blue;'>" & txt.Readline & "</label>"))
RESPONSE.WRITE NEWLINE
DIV_A1 = 1
END IF
END IF
IF NOT txt.AtEndOfStream = TRUE THEN Response.Write(txt.ReadLine & "<br>") 'Write the current line to the screen
LOOP
END IF看看前几行是如何不显示任何信息的,因为它们是html头代码和第5行的标记,但是在运行<style>命令之后,第6行会在后面显示文本,直到它到达</style>的第10行为止。也许这能让你更明白我在说什么。
发布于 2022-02-02 08:48:54
每当您需要在web浏览器中以文本形式显示HTML时,您需要首先对其进行HTML编码,否则web浏览器将解释和呈现HTML标记,而不是简单地以纯文本形式显示它们。
您可以使用以下方法在经典ASP中执行此操作
<%
Call Response.Write(Server.HTMLEncode(content))
%>在任何返回文件内容的Response.Write方法调用中,都需要使用Response.Write。
有用的链接
https://stackoverflow.com/questions/70932473
复制相似问题