Los amigos que han usado PHP saben que el uso de variables en PHP es flexible y conveniente, especialmente la conversión de nombre-valor de variable en cadenas se puede realizar fácilmente, lo que hace que todo el código PHP sea más conciso y hermoso. Por ejemplo, una declaración SQL para actualizar la base de datos solo necesita escribirse como:
código de programa
"actualizar usuarios establecer contraseña='$contraseña', grupo=$grupo, nombre='$nombre de usuario' donde cuenta='$cuenta'"
, $contraseña, $grupo, $nombre de usuario, $cuenta serán reemplazados por los valores reales de las variables. Para lograr la misma función en ASP, debe escribirse como:
código de programa
"actualizar usuario establece contraseña ='" & contraseña & "',group=" & grupo & ",nombre='" & nombre de usuario & "' donde cuenta='" & cuenta & "'"
, parece largo y feo. Si se trata de un lenguaje de inserción y hay muchos campos insertados, comprobar la correspondencia entre campos y valores será un proceso doloroso.
Ahora veamos cómo implementar una transformación similar de nombre-valor de variable en ASP.
La idea
es que, primero, debe haber una manera de distinguir los nombres de las variables que deben reemplazarse con valores reales del texto normal y luego reemplazar todos los nombres de las variables encontradas con los valores reales que representan;
El primer punto se puede encontrar a través de expresiones regulares. Aquí no usamos la representación de variables de PHP, sino que usamos el número grande {} como carácter límite del nombre de la variable. La representación de cadena se convierte en contraseña = '{contraseña}', grupo = {. grupo}.
El segundo punto es la clave para la conversión de nombre-valor de variable. El valor de la variable se obtiene a través del nombre de la variable. Al observar la información de ASP, no encontramos un método de implementación directo, pero hay una función Ejecutar que nos llamó la atención. Por la descripción de la información, sabemos que Ejecutar puede ejecutar la cadena válida entrante como una sincronización de ejecución de código. , solo necesitamos escribir una pequeña función para lograr nuestro objetivo. El código central es:
código de programa
función ObtenerVar(var_name)
Ejecutar("función get_value(): get_value=" & var_name & ": finalizar función")
getvar=obtener_valor()
función final
Implemente
el código completo:
código deprograma'DISEÑO
POR: Peng Guohui
'SITIO: http://kacarton.yeah.net/
'BLOG: http://blog.csdn.net/nhconch
'CORREO ELECTRÓNICO: [email protected]
'El artículo es original del autor. Comuníquese conmigo antes de reimprimir. Indique la fuente del artículo y conserve la información del autor.
'=================================================== = =================
función GetVar(var_name)
Ejecutar("función get_value(): get_value=" & var_name & ": finalizar función")
getvar=obtener_valor()
función final
función Txt2Value(cadena, nivel)
tenue regEx, coincidencias, resultado
Establecer expresión regular = nueva expresión regular
seleccionar nivel de caso
case 0 regEx.Pattern = "{([w()]+)}" 'El nombre de la variable es válido
caso 1 regEx.Pattern = "{([w+-*/\<>=()]+)}" 'Los nombres de variables y los operadores son válidos
'case 2 regEx.Pattern = "{([ws()]+)}" 'Todos los caracteres excepto los de nueva línea son válidos
caso más función de salida
finalizar seleccionar
'regEx.Patrón = "{(w+)}"
regEx.IgnoreCase = verdadero
regEx.Global = verdadero
Establecer coincidencias = regEx.Execute(str)
Resultado = cadena
'respuesta.escribir Coincidencias.Contar
Para cada partido en partidos
Resultado = Reemplazar (Resultado, Coincidencia.Valor, GetVar(Match.SubMatches(0)))
Próximo
establecer coincidencias = nada
establecer expresiones regulares = nada
Txt2Value = Resultado
función final
función Var2Value(var_name)
ValorVar2 = ValorTxt2(nombre_var, 0)
función final
Método de llamada:
código de programa
Var2Value("actualizar usuarios configurar contraseña='{contraseña}', grupo={grupo}, nombre='{nombre de usuario}' donde cuenta='{cuenta}'"
Var2Value llama a Txt2Value, Txt2Value encuentra todos los nombres de variables y llama a GetVar Obtener el valor de la variable y reemplazarlo. De hecho, llamar a Txt2Value(str,1) directamente también permite cuatro operaciones aritméticas en el valor de la cadena.