nhconch [العمل الأصلي]
يعرف الأصدقاء الذين استخدموا PHP أن استخدام المتغيرات في PHP مرن ومريح، خاصة أن تحويل قيمة اسم المتغير في السلاسل يمكن تحقيقه بسهولة، مما يجعل كود PHP بأكمله أكثر إيجازًا وجمالًا. على سبيل المثال، يجب كتابة عبارة SQL لتحديث قاعدة البيانات فقط: "تحديث المستخدمين الذين قاموا بتعيين كلمة المرور = '$password'، المجموعة=$group، الاسم='$username' حيث الحساب='$account'"، حيث $password و$group و$username و$account سيتم استبدالها بالقيم المتغيرة الفعلية لتحقيق نفس الوظيفة في ASP، يجب عليك كتابة: "update users setpassword='" &password & "',group=" &group &. "،name= '" & username & "' Where account='" & account & "'"، والذي يبدو مطولًا وقبيحًا. إذا كانت هذه لغة إدراج وكان هناك الكثير من الحقول المدرجة، فسيكون التحقق من المراسلات بين الحقول والقيم عملية مؤلمة.
الآن دعونا نرى كيفية تنفيذ تحويل مماثل لقيمة الاسم في ASP.
الفكرة
هي أنه يجب أولاً أن تكون هناك طريقة لتمييز أسماء المتغيرات التي تحتاج إلى استبدال القيم الفعلية عن النص العادي، ثم استبدال جميع أسماء المتغيرات التي تم العثور عليها بالقيم الفعلية التي تمثلها.
يمكن العثور على النقطة الأولى من خلال التعبيرات العادية. هنا لا نستخدم تمثيل متغير PHP، ولكننا نستخدم الرقم الكبير {} كحرف حد لاسم المتغير. مجموعة}.
النقطة الثانية هي مفتاح تحويل اسم المتغير إلى القيمة. يتم الحصول على قيمة المتغير من خلال اسم المتغير. بالنظر إلى معلومات ASP، لم نجد طريقة تنفيذ مباشرة، ولكن هناك وظيفة تنفيذ لفتت انتباهنا من وصف المعلومات، نعلم أن التنفيذ يمكنه تنفيذ السلسلة الصالحة الواردة كمزامنة لتنفيذ التعليمات البرمجية ، نحتاج فقط إلى كتابة دالة صغيرة لتحقيق تعليمات هدفنا. الكود الأساسي هو:
الدالة GetVar(var_name)
تنفيذ ("وظيفة get_value (): get_value = " & var_name & ": وظيفة النهاية")
getvar=get_value()
لتنفيذ
الوظيفة النهائية
:
الدالة GetVar(var_name)
تنفيذ ("وظيفة get_value (): get_value = " & var_name & ": وظيفة النهاية")
getvar=get_value()
وظيفة النهاية
وظيفة Txt2Value (شارع، مستوى)
التعبير العادي الخافت، التطابقات، النتيجة
قم بتعيين regEx = RegExp الجديد
حدد مستوى الحالة
case 0 regEx.Pattern = "{(w+)}" 'اسم المتغير صالح
الحالة 1 regEx.Pattern = "{([w+-*/\<>=]+)}" 'أسماء المتغيرات وعوامل التشغيل صالحة
'case 2 regEx.Pattern = "{([ws]+)}" 'جميع الأحرف باستثناء أحرف السطر الجديد صالحة
حالة الخروج وظيفة أخرى
حدد النهاية
'regEx.Pattern = "{(w+)}"
regEx.IgnoreCase = صحيح
regEx.Global = صحيح
تعيين التطابقات = regEx.Execute(str)
النتيجة = شارع
'response.write Matches.Count
لكل مباراة في المباريات
النتيجة = استبدال (النتيجة، Match.Value، GetVar(Match.SubMatches(0)))
التالي
تعيين التطابقات = لا شيء
تعيين regEx = لا شيء
Txt2Value = النتيجة
وظيفة النهاية
وظيفة Var2Value (var_name)
Var2Value = Txt2Value(var_name, 0)
الوظيفة النهائية
:
Var2Value("تحديث كلمة المرور التي قام المستخدمون بتعيينها ='{password}'، المجموعة={group}، الاسم='{username}' حيث الحساب='{account}'"
يستدعي Var2Value Txt2Value ويبحث عن جميع أسماء المتغيرات ويستدعي GetVar للحصول على قيم المتغيرات واستبدالها. في الواقع، استدعاء Txt2Value(str,1) مباشرة يسمح أيضًا بأربع عمليات حسابية على قيم السلسلة.