PHP を使用したことのある友人は、PHP での変数の使用が柔軟で便利であることを知っています。特に、文字列内の変数名と値の変換が簡単に実現でき、PHP コード全体がより簡潔で美しくなります。たとえば、データベースを更新する SQL ステートメントは次のように記述するだけで済みます。
プログラムコード
「ユーザーを更新するには、パスワード='$パスワード'、グループ=$グループ、名前='$ユーザー名'、アカウント='$アカウント'を設定します」
、$password、$group、$username、$account は、ASP で同じ機能を実現するには、次のように記述する必要があります。
プログラムコード
「更新ユーザー設定パスワード='」 & パスワード & "',group= & グループ & ",name='" & ユーザー名 & "' where account='" & アカウント & "'"
、長くて見苦しいようです。これが挿入言語であり、挿入されたフィールドが多数ある場合、フィールドと値の対応を確認するのは骨の折れる作業になります。
次に、同様の変数名と値の変換を ASP で実装する方法を見てみましょう。
その考え方
は、まず、実際の値に置き換える必要がある変数名を通常のテキストから区別する方法が必要であり、次に、見つかったすべての変数名をそれらが表す実際の値に置き換えるというものです。
最初のポイントは、正規表現を使用して見つけることができます。ここでは、PHP の変数表現を使用しませんが、変数名の境界文字として大きな数字 {} を使用します。文字列表現は、password='{password}',group ={ になります。グループ}。
2 番目のポイントは、変数名と変数値の変換の鍵です。変数値は変数名を通じて取得されます。 ASP の情報を見ると、直接的な実装方法は見つかりませんでしたが、情報の説明から、Execute がコード実行の同期として受信した有効な文字列を実行できることがわかります。 、命令を達成するには小さな関数を書くだけです。コアコードは次のとおりです:
プログラムコード
関数 GetVar(var_name)
Execute("関数 get_value(): get_value=" & var_name & ": 関数の終了")
getvar=get_value()
終了関数
完全なコード
を実装します
:プログラム コード
'DESIGN BY: Peng Guohui
サイト: http://kacarton.yeah.net/
ブログ: http://blog.csdn.net/nhconch
'メール: [email protected]
'この記事は著者のオリジナルです。転載する前に私にご連絡ください。記事の出典を明記し、著者の情報を保持してください。
'================================================ = ================
関数 GetVar(var_name)
Execute("関数 get_value(): get_value=" & var_name & ": 関数の終了")
getvar=get_value()
終了関数
function Txt2Value(str, level)
dim 正規表現、一致、結果
regEx = 新しい RegEx を設定します
ケースレベルを選択してください
case 0 regEx.Pattern = "{([w()]+)}" '変数名は有効です
case 1 regEx.Pattern = "{([w+-*/\<>=()]+)}" '変数名と演算子は有効です
'case 2 regEx.Pattern = "{([ws()]+)}" '改行文字を除くすべての文字が有効です
case else 終了関数
エンドセレクト
'regEx.Pattern = "{(w+)}"
regEx.IgnoreCase = true
regEx.Global = true
一致を設定 = regEx.Execute(str)
結果 = 文字列
'response.write Matches.Count
試合中の各試合について
結果 = Replace(結果、Match.Value、GetVar(Match.SubMatches(0)))
次
一致 = なしを設定します
正規表現 = 何も設定しない
Txt2Value = 結果
関数の終了
function Var2Value(var_name)
Var2Value = Txt2Value(var_name, 0)
関数の終了
呼び出し方法:
プログラムコード
Var2Value("update users setpassword='{password}', group={group}, name='{username}' where account='{account}'"
Var2Value は Txt2Value を呼び出し、Txt2Value はすべての変数名を検索して GetVar Get を呼び出します。実際、Txt2Value(str,1) を直接呼び出すと、文字列値の四則演算も可能になります。