Друзья, которые использовали PHP, знают, что использование переменных в PHP является гибким и удобным, особенно можно легко реализовать преобразование имени и значения переменной в строки, что делает весь код PHP более кратким и красивым. Например, оператор SQL для обновления базы данных должен быть записан как:
программный код
"обновить пользователей, установивших пароль='$password', group=$group, name='$username', где account='$account'"
, $password, $group, $username, $account будут заменены фактическими значениями переменных. Чтобы добиться той же функции в ASP, ее необходимо записать так:
программный код
"обновление пользователей устанавливает пароль='" и пароль & "',group=" & group & ",name='" & имя пользователя & "' где account='" & account & "'"
, кажется длинным и некрасивым. Если это язык вставки и вставленных полей много, проверка соответствия полей и значений будет мучительным процессом.
Теперь давайте посмотрим, как реализовать подобное преобразование имени-значения переменной в ASP.
Идея
состоит в том, что во-первых, должен быть способ отличить имена переменных, которые необходимо заменить фактическими значениями, от обычного текста, а затем заменить все найденные имена переменных фактическими значениями, которые они представляют;
Первый момент можно найти с помощью регулярных выражений. Здесь мы не используем представление переменных PHP, а используем большое число {} в качестве граничного символа имени переменной. Строковое представление становится паролем='{пароль}',группа ={. группа}.
Второй момент – это ключ к преобразованию имени переменной. Значение переменной получается через имя переменной. Просматривая информацию ASP, мы не нашли прямого метода реализации, но есть функция Execute, которая привлекла наше внимание. Из описания информации мы знаем, что Execute может выполнять входящую действительную строку в качестве синхронизации выполнения кода. нам нужно всего лишь написать небольшую функцию для достижения нашей цели. Основной код:
программный код
функция GetVar(var_name)
Execute("функция get_value(): get_value=" & var_name & ": конечная функция")
getvar=get_value()
конечная функция
Реализуйте
полный код:
программный
код. ДИЗАЙН: Пэн Гохуэй.
'САЙТ: http://kacarton.yeah.net/
'БЛОГ: http://blog.csdn.net/nhconch
ЭЛЕКТРОННАЯ ПОЧТА: [email protected]
«Статья принадлежит автору. Пожалуйста, свяжитесь со мной перед перепечаткой. Пожалуйста, укажите источник статьи и сохраните информацию об авторе. Спасибо за вашу поддержку».
'============================================== = ================
функция GetVar(var_name)
Execute("функция get_value(): get_value=" & var_name & ": конечная функция")
getvar=get_value()
конечная функция
функция Txt2Value(str, level)
dim regEx, Совпадения, Результат
Установить регулярное выражение = новое регулярное выражение
выберите уровень дела
case 0 regEx.Pattern = "{([w()]+)}" 'Имя переменной допустимо
case 1 regEx.Pattern = "{([w+-*/\<>=()]+)}" 'Имена переменных и операторы допустимы
'case 2 regEx.Pattern = "{([ws()]+)}" 'Все символы, кроме символов новой строки, допустимы
случай иначе функция выхода
конец выбора
'regEx.Pattern = "{(w+)}"
regEx.IgnoreCase = правда
regEx.Global = правда
Установить совпадения = regEx.Execute(str)
Результат = ул
'response.write Matches.Count
За каждый матч в матчах
Результат = Заменить(Результат, Матч.Значение, GetVar(Match.SubMatches(0)))
Следующий
установить Совпадения = ничего
установить регулярное выражение = ничего
Txt2Value = Результат
конечная функция
функция Var2Value(var_name)
Var2Value = Txt2Value(var_name, 0)
Конечная функция
Способ вызова:
программный код
Var2Value("обновить пользователи устанавливают пароль='{password}', group={group}, name='{username}' где account='{account}'"
Var2Value вызывает Txt2Value, Txt2Value находит все имена переменных и вызывает GetVar Получить значение переменной и заменить его. Фактически, прямой вызов Txt2Value(str,1) также позволяет выполнять четыре арифметические операции над строковым значением.