Можете ли вы объявить переменную в классическом ASP вот так?

Я пытаюсь посмотреть, можно ли это сделать в классическом 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 = "<stuff color="red">here</stuff>"

поэтому мне нужно исправить это, заменив color="red" на color=""red""

ЧАСТЬ ПРОБЛЕМЫ:

Я не хочу заменять " на "" для содержимого, когда я его назначаю, я думаю, что синтаксис HEREDOC недоступен для классического ASP.

ОК, ХОРОШО... :P

Поскольку все спрашивают меня, ПОЧЕМУ я делаю это таким образом, вот почему я должен поддерживать этот старый код ASP, я не хочу, но вдруг объем этого старого приложения меняется, что они хотят содержимое (которое раньше была HTML-страницей) для отправки по электронной почте, ТАК... Я хотел HEREDOC вывести HTML, передать его функции почты и отправить по электронной почте. Сказав это, я знаю, что это небрежно, и я знаю, что в другом случае это работает лучше, однако это то, к чему призывала работа, я не хотел переписывать ее, я просто хотел увеличить вывод из HTML в HTML -ЭЛЕКТРОННОЕ ПИСЬМО...

Надеюсь, это имеет больше смысла ;)


person Jakub    schedule 02.12.2009    source источник
comment
Похоже, вы идете в обратном направлении - вы пытаетесь вставить html-контент на страницу asp. Классический asp действительно работает лучше, если вы вставляете содержимое asp в html-страницу.   -  person Martha    schedule 09.12.2009
comment
обновил мой вопрос, чтобы отразить WHY этого вопроса.   -  person Jakub    schedule 10.12.2009
comment
У меня также есть вариант использования для этого: попытка включить JavaScript-коды для конкретных страниц в шаблон. Было бы очень удобно сказать varJS = <entire script> Жаль, что ASP не может этого сделать.   -  person Stephen R    schedule 11.11.2017


Ответы (4)


Нет. Синтаксис одного языка не будет работать на другом языке. Однако вы можете присвоить переменной строковый литерал:


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

person Dewayne Christensen    schedule 02.12.2009
comment
Я знаю об этом, НО, как вы заметили, мне все еще нужно искать и заменять " на "" в тегах ‹html›.. :( - person Jakub; 02.12.2009
comment
Я не помню, предопределен ли vbCrLf в классе ASP или нет. Если нет, то vbCrLf = chr(13) & chr(10). - person Dewayne Christensen; 02.12.2009
comment
Вот почему вам платят большие деньги. - person Dewayne Christensen; 02.12.2009
comment
@Dewayne: вы можете использовать либо vbCrLf, либо vbNewLine — последний предпочтительнее, поскольку он будет отправлять либо vbCrLf, либо vbCr в зависимости от клиента. - person AnonJr; 03.12.2009
comment
выбрал ответ Дьюэйна в качестве окончательного решения, хотя это было не то, что я хотел, поскольку мой конечный результат выполнялся и выполнялся поиск и замена одиночного " двойным "", чтобы они не нарушали значение переменной. И @Dweayne, я хотел бы заработать большие деньги... :( - person Jakub; 03.12.2009
comment
Синтаксис одного языка не будет работать на другом языке. Это само собой разумеется; но вполне разумно спросить, есть ли в одном языке эффективный эквивалент синтаксиса другого языка. - person Stephen R; 11.11.2017

Проще всего было бы сохранить HTML в отдельном файле, а затем открыть этот файл с помощью объекта TextStream, прочитав строку в переменную.

person Mark Bertenshaw    schedule 02.12.2009
comment
Я думал об этом, но как мне обрабатывать разделы, в которых я перебираю результирующий набор данных? К сожалению, это старая классика жереха, которую мне нужно исправить. - person Jakub; 02.12.2009
comment
Вы можете загрузить несколько фрагментов с диска. Там будет фрагмент заголовка (от ‹HTML› до верхней части вашей ‹TABLE› или чего-то еще), фрагмент строки, а затем фрагмент вашего нижнего колонтитула (от ‹/TABLE› до тега ‹/HTML›. Сказав это, Мне было бы очень интересно узнать, какой код требует такого запутанного синтаксиса. Почему вы не можете включить HTML в файл ASP? Мое предложение, безусловно, будет медленнее. - person Mark Bertenshaw; 03.12.2009

Я почти уверен, что вы не можете сделать именно то, о чем просите здесь. Однако может помочь, если вы объясните, что вы пытаетесь сделать. Может есть какой-то другой способ.

Обновить:

Вы можете рассмотреть возможность размещения фрагментов HTML в отдельных файлах. Это позволит вам определить их без необходимости переформатирования HTML. Аналогичным образом вы можете поместить их в базу данных или даже в файлы ресурсов.

Я до сих пор не на 100% понимаю, почему вы хотите, чтобы эти фрагменты HTML определялись как переменные, но эти подходы будут работать.

person Martin Peck    schedule 02.12.2009
comment
По сути, я хочу иметь возможность хранить «что-то» в переменной, не исправляя " или любой другой символ, который может нарушить назначение. - person Jakub; 02.12.2009

для asp нет herodoc :) gogo escape - это единственный полезный способ

person marcel    schedule 08.11.2010
comment
Пожалуйста, расширьте этот ответ, так как он не имеет большого смысла. - person Lee Taylor; 08.12.2012