Amigos que usaram PHP sabem que o uso de variáveis em PHP é flexível e conveniente, principalmente a conversão de nome-valor de variável em strings pode ser facilmente realizada, tornando todo o código PHP mais conciso e bonito. Por exemplo, uma instrução SQL para atualizar o banco de dados só precisa ser escrita como:
código do programa
"atualizar usuários definidos senha='$senha', grupo=$grupo, nome='$nomedeusuário' onde conta='$conta'"
, $password, $group, $username, $account serão substituídos pelos valores reais das variáveis. Para obter a mesma função em ASP, ela deve ser escrita como:
código do programa
"atualizar usuários set password='" & senha & "',group=" & group & ",name='" & nome de usuário & "' where account='" & account & "'"
, parece longo e feio. Se esta for uma linguagem de inserção e houver muitos campos inseridos, verificar a correspondência entre campos e valores será um processo doloroso.
Agora vamos ver como implementar uma transformação semelhante de nome-valor de variável em ASP.
A ideia
é que primeiro deve haver uma maneira de distinguir os nomes das variáveis que precisam ser substituídos por valores reais do texto comum e, em seguida, substituir todos os nomes de variáveis encontrados pelos valores reais que eles representam;
O primeiro ponto pode ser encontrado por meio de expressões regulares. Aqui não usamos a representação de variável do PHP, mas usamos o grande número {} como caractere de limite do nome da variável. A representação da string se torna password='{password}',group ={. grupo}.
O segundo ponto é a chave para a conversão nome-valor da variável. O valor da variável é obtido através do nome da variável. Olhando as informações do ASP, não encontramos um método de implementação direta, mas há uma função Execute que chamou nossa atenção. Pela descrição das informações, sabemos que Execute pode executar a string válida de entrada como uma sincronização de execução de código. , precisamos apenas escrever uma pequena função para atingir nossas instruções de objetivo. O código principal é:
código do programa
função GetVar(var_nome)
Execute("função get_value(): get_value=" & var_name & ": função final")
getvar=get_value()
função final
Implemente
o código completo:
códigodo programa'DESIGN
BY: Peng Guohui
'SITE: http://kacarton.yeah.net/
'BLOG: http://blog.csdn.net/nhconch
'EMAIL: [email protected]
'O artigo é original do autor. Por favor, entre em contato comigo antes de reimprimir. Por favor, indique a fonte do artigo e guarde as informações do autor.
'================================================ = ================
função GetVar(var_name)
Execute("função get_value(): get_value=" & var_name & ": função final")
getvar=get_value()
função final
função Txt2Value(str, nível)
dim regEx, correspondências, resultado
Definir regEx = novo RegExp
selecione o nível do caso
case 0 regEx.Pattern = "{([w()]+)}" 'O nome da variável é válido
case 1 regEx.Pattern = "{([w+-*/\<>=()]+)}" 'Nomes de variáveis e operadores são válidos
'case 2 regEx.Pattern = "{([ws()]+)}" 'Todos os caracteres, exceto caracteres de nova linha, são válidos
caso contrário, sair da função
final selecionar
'regEx.Pattern = "{(w+)}"
regEx.IgnoreCase = verdadeiro
regEx.Global = verdadeiro
Definir correspondências = regEx.Execute(str)
Resultado =str
'response.write Correspondências.Count
Para cada partida nas partidas
Resultado = Substituir(Resultado, Match.Value, GetVar(Match.SubMatches(0)))
Próximo
definir correspondências = nada
definir regEx = nada
Txt2Valor = Resultado
função final
função Var2Value(var_name)
Var2Value = Txt2Value(var_nome, 0)
função final
Método de chamada:
código do programa
Var2Value("update users set password='{password}', group={group}, name='{username}' where account='{account}'"
Var2Value chama Txt2Value, Txt2Value encontra todos os nomes de variáveis e chama GetVar Obtém o valor da variável e substituí-lo. Na verdade, chamar Txt2Value(str,1) diretamente também permite quatro operações aritméticas no valor da string.