【问题标题】:Can you declare a variable in ASP classic like this?你能像这样在 ASP 经典中声明一个变量吗?
【发布时间】:2010-12-22 13:20:20
【问题描述】:

我正在尝试看看这是否可以在经典 ASP 中完成:

Dim myVar
myVar = <<< END
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
    <title>test</title>
</head>

<BODY>
END

我可以在 PHP 中做到这一点,但如果它可以在 ASP 中完成,我不肯定。 问题是我需要通过变量处理 HTML 输出,我不想通过 HTML 并将 " 转换为 ""

编辑:

我发现这在 PHP 中被称为 HEREDOC 语法。

既然被问到,我想做的是存储 HTML 类型标签(可能包含 '、' 否则会破坏的字符 myVar = "&lt;stuff color="red"&gt;here&lt;/stuff&gt;"

所以我需要通过将color="red" 替换为color=""red"" 来修复它

部分问题:

我不想在分配内容时将" 替换为"",我猜想HEREDOC 语法不适用于ASP 经典。

好的...:P

既然每个人都在问我为什么要这样做,这就是为什么,我必须支持这个旧的 ASP 代码,我不想,但突然这个旧应用程序的范围改变了他们想要的要通过电子邮件发送的内容(以前是 HTML 页面),所以...我想 HEREDOC 的 HTML 输出,将其传递给邮件功能并通过电子邮件发送。话虽如此,我知道它的草率,并且我知道它在另一种方式下效果更好,但是这是工作要求的,我不想重新编写它,我只是想将输出从 HTML 增加到 HTML -电子邮件...

希望这更有意义;)

【问题讨论】:

  • 听起来你在倒退——你试图将 html 内容插入到 asp 页面中。如果您将 asp 内容插入到 html 页面中,经典的 asp 确实效果更好。
  • 更新了我的问题以反映这个问题的WHY
  • 我也有一个用例:尝试将特定于页面的 JavaScript 合并到模板中。说varJS = &lt;entire script&gt; 太糟糕了,ASP 做不到。

标签: asp-classic variables heredoc


【解决方案1】:

最简单的做法是将 HTML 保存在单独的文件中,然后使用 TextStream 对象打开该文件,将字符串读入变量中。

【讨论】:

  • 我想过这一点,但我将如何处理循环数据结果集的部分?不幸的是,这是我需要修复的古老的 asp 经典。
  • 您可以从磁盘加载多个片段。会有一个标题片段(从 到您的 的顶部或其他),一个行片段,然后是您的页脚片段(从
    到 标记。话虽如此,我很想知道什么样的代码需要这种复杂的语法。为什么不能在 ASP 文件中包含 HTML?我的建议肯定会慢一些。
【解决方案2】:

没有。一种语言的语法不适用于另一种语言。但是,您可以将字符串文字分配给变量:

Dim myVar myVar = _ "<html xmlns=""http://www.w3.org/1999/xhtml"" lang=""en"" xml:lang=""en"">" & vbCrLf & _ "<head>" & vbCrLf & _ " <title>test</title>" & vbCrLf & _ "</head>" & vbCrLf & _ "" & vbCrLf & _ "<BODY>" & vbCrLf

【讨论】:

  • 我知道这一点,但是,正如您所指出的,我仍然需要在 标签中搜索并将" 替换为"" .. :(
  • 我不记得 vbCrLf 是否在 ASP 类中预定义。如果不是,则为“vbCrLf = chr(13) & chr(10)”。
  • 这就是你得到大笔报酬的原因。
  • @Dewayne:您可以使用 vbCrLf 或 vbNewLine - 首选后者,因为它会根据客户的需要发送 vbCrLf 或 vbCr。
  • 选择 Dewayne 的答案作为最终解决方案,即使这不是我想要的,因为我的最终结果是通过搜索并将单个 " 替换为双 "",这样他们就不会打破变量值。还有@Dweayne,我希望我能赚大钱...... :(
【解决方案3】:

我很确定您不能完全按照您的要求进行操作。 但是,如果您解释了您要做什么,它可能会有所帮助。可能还有其他方法。

更新:

您可以考虑将 HTML 片段放入单独的文件中。这将允许您定义它们而无需对 HTML 进行任何重新格式化。以类似的方式,您可以将它们放入数据库甚至资源文件中。

我仍然不是 100% 清楚为什么要将这些 HTML 片段定义为变量,但这些方法会奏效。

【讨论】:

  • 基本上,我希望能够在变量中存储“某些东西”,而无需修复 " 或任何其他可能破坏分配的字符。
【解决方案4】:

asp 没有 herodoc :) gogo escape - 这是唯一可用的方法

【讨论】:

  • 请扩大这个答案,因为它没有什么意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 2010-11-19
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
相关资源
最近更新 更多