Les amis qui ont utilisé PHP savent que l'utilisation de variables en PHP est flexible et pratique, en particulier la conversion nom-valeur de variable en chaînes peut être facilement réalisée, rendant l'ensemble du code PHP plus concis et plus beau. Par exemple, une instruction SQL pour mettre à jour la base de données doit uniquement être écrite sous la forme :
code de programme
"mettre à jour les utilisateurs définir le mot de passe='$password', group=$group, name='$username' où account='$account'"
, $password, $group, $username, $account seront remplacés par les valeurs réelles des variables. Pour obtenir la même fonction en ASP, il doit être écrit comme suit :
code de programme
"mettre à jour les utilisateurs définit le mot de passe ='" et le mot de passe & "',group=" & groupe & ",name='" & nom d'utilisateur & "' où compte='" & compte & "'"
, semble long et moche. S'il s'agit d'un langage d'insertion et qu'il y a beaucoup de champs insérés, vérifier la correspondance entre les champs et les valeurs sera un processus pénible.
Voyons maintenant comment implémenter une transformation nom-valeur de variable similaire dans ASP.
L'idée
est que d'abord, il doit y avoir un moyen de distinguer les noms de variables qui doivent être remplacés par des valeurs réelles du texte ordinaire, puis de remplacer tous les noms de variables trouvés par les valeurs réelles qu'ils représentent ;
Le premier point peut être trouvé via des expressions régulières. Ici, nous n'utilisons pas la représentation de variable de PHP, mais utilisons le grand nombre {} comme caractère limite du nom de variable. La représentation sous forme de chaîne devient password='{password}',group ={. grouper}.
Le deuxième point est la clé de la conversion nom-valeur de variable. La valeur de la variable est obtenue via le nom de la variable. En regardant les informations ASP, nous n'avons pas trouvé de méthode d'implémentation directe, mais il existe une fonction Execute qui a attiré notre attention. D'après la description des informations, nous savons qu'Execute peut exécuter la chaîne valide entrante en tant que synchronisation d'exécution de code. , il nous suffit d’écrire une petite fonction pour atteindre notre objectif. Le code de base est :
le code du programme
fonction GetVar(var_name)
Exécuter("function get_value(): get_value=" & var_name & ": end function")
getvar=get_value()
fonction de fin
Implémenter
le code complet :
codede programme
'DESIGN BY : Peng Guohui
'SITE : http://kacarton.yeah.net/
'BLOG : http://blog.csdn.net/nhconch
'EMAIL : [email protected]
'L'article est original de l'auteur. Veuillez me contacter avant de le réimprimer. Veuillez indiquer la source de l'article et conserver les informations de l'auteur. Merci pour votre soutien.
'================================================== = ================
fonction GetVar(var_name)
Exécuter("function get_value(): get_value=" & var_name & ": end function")
getvar=get_value()
fonction de fin
fonction Txt2Value(str, niveau)
dim regEx, Matchs, Résultat
Définir regEx = nouveau RegExp
sélectionner le niveau du dossier
case 0 regEx.Pattern = "{([w()]+)}" 'Le nom de la variable est valide
cas 1 regEx.Pattern = "{([w+-*/\<>=()]+)}" 'Les noms de variables et les opérateurs sont valides
'case 2 regEx.Pattern = "{([ws()]+)}" 'Tous les caractères, à l'exception des caractères de nouvelle ligne, sont valides
sinon, quitter la fonction
fin de la sélection
'regEx.Pattern = "{(w+)}"
regEx.IgnoreCase = vrai
regEx.Global = vrai
Définir les correspondances = regEx.Execute(str)
Résultat = str
'response.write Correspondances.Nombre
Pour chaque match dans les matchs
Résultat = Remplacer (Résultat, Match.Value, GetVar (Match.SubMatches (0)))
Suivant
définir des correspondances = rien
définir regEx = rien
Txt2Value = Résultat
fonction de fin
fonction Var2Value(var_name)
Var2Value = Txt2Value(var_name, 0)
fonction de fin
Méthode d'appel :
code de programme
Var2Value("update users set password='{password}', group={group}, name='{username}'where account='{account}'"
Var2Value appelle Txt2Value, Txt2Value trouve tous les noms de variables et appelle GetVar Récupérer le valeur de la variable et remplacez-la. En fait, appeler directement Txt2Value(str,1) permet également quatre opérations arithmétiques sur la valeur de la chaîne.