هناك العديد من أنظمة الأخبار التي تنشئ لغة html، ولكنها جميعًا تستخدم القوالب. تقوم هذه الوظيفة بحفظ كود html الذي تم إنشاؤه بواسطة صفحة asp في ملف html، وبهذه الطريقة، ليست هناك حاجة لتغيير الصفحة الأصلية، ويمكنك إكمال ملف html بسهولة توليد الأخبار من نظام أتش تي أم أل. ^_^
نظرًا لأن الكود قصير نسبيًا، فلن أعلق عليه هنا
<%
'توجد مشكلة في هذا البرنامج عند وجود Response.End() في ملف تضمين الصفحة المستهدفة، أي صفحة #include.
'ملاحظة: يجب وضع هذا الملف في نفس الدليل حيث الملف المشار إليه باسم الملف
خافت Hughchiu_rtcode
الدالة get_exe_code(اسم الملف)
تنفيذ خافت
خافت tmp_str
Dim re,re1,content,fso,f,aspStart,aspEnd
خافت مللي، م
تنفيذ الكود = ""
مجموعة fso=CreateObject("Scripting.FileSystemObject")
تعيين f=fso.OpenTextFile(server.mappath(filename))
content=f.ReadAll
f. إغلاق
تعيين و = لا شيء
تعيين fso=لا شيء
تعيين إعادة = regexp الجديد
إعادة تجاهل = صحيح
re.global = صحيح
re.pattern = "<%@[^%]+%>"
المحتوى = إعادة الاستبدال (المحتوى، "")
re.global = false
re.pattern = "<!--s*#includes*files*=s*""([^""]+)""s*- ->"
يفعل
تعيين مللي = إعادة التنفيذ (المحتوى)
إذا ms.count<>0 ثم
تعيين م = مللي ثانية (0)
tmp_str = get_exe_code(m.submatches(0))
المحتوى = إعادة الاستبدال (المحتوى، tmp_str)
آخر
الخروج القيام به
نهاية إذا
حلقة
تعيين م = لا شيء
تعيين مللي = لا شيء
إعادة النمط = "^s*="
aspEnd=1
aspStart=inStr(aspEnd,content,"<%")+2
set re1=new RegExp
re1.ignorecase = صحيح
re1.global = خطأ
re1.pattern = "response.Write(.+)"
افعل ذلك أثناء aspStart>aspEnd+1
execode = execode&vbcrlf&" Hughchiu_rtcode = Hughchiu_rtcode&"""&replace( استبدال(Mid(content,aspEnd,aspStart-aspEnd-2),""""،"""""), vbcrlf, """&vbcrlf&""") &""""&vbcrlf
aspEnd=inStr(aspStart,content,"%>")+2
tmp_str = منتصف (المحتوى، aspStart، aspEnd-aspStart-2)
يفعل
تعيين مللي = re1.execute(tmp_str)
إذا ms.count<>0 ثم
تعيين م = مللي ثانية (0)
tmp_str = re1.replace(tmp_str, "hughchiu_rtcode = Hughchiu_rtcode&"&m.submatches(0))
آخر
الخروج القيام به
نهاية إذا
حلقة
تعيين م = لا شيء
تعيين مللي = لا شيء
execode = execode& re.replace(tmp_str,"hughchiu_rtcode = Hughchiu_rtcode&")
aspStart=inStr(aspEnd,content,"<%")+2
حلقة
تعيين re1 = لا شيء
تعيين إعادة = لا شيء
execode = execode&vbcrlf&" Hughchiu_rtcode = Hughchiu_rtcode&"""&replace( استبدال(Mid(content,aspEnd), """", """"""), vbcrlf, """&vbcrlf&""" )&"""&vbcrlf
get_exe_code = "<%"&execode&"%>"
وظيفة النهاية
وظيفة asp2html (اسم الملف)
رمز خافت
كود = استبدال (استبدال (استبدال (get_exe_code(اسم الملف)، "hughchiu_rtcode = Hughchiu_rtcode&""""&vbcrlf, "" ), "<%", "" ), "%>"، "" )
'الاستجابة.اكتب (الكود)
تنفيذ (رمز)
"الاستجابة. الكتابة (hughchiu_rtcode)
asp2html = Hughchiu_rtcode
وظيفة النهاية
%>
مثال الاستخدام:
مجموعة fso=CreateObject("Scripting.FileSystemObject")
تعيين f=fso.CreateTextFile( server.mappath( "youpage.htm" ), صحيح )
f.WriteLine( asp2html("youpage.asp"))
f. إغلاق
تعيين و = لا شيء
set fso = لا شيء
آمل أن تكون هذه الوظيفة مفيدة للجميع نظرًا للمستوى المحدود، يرجى الإشارة إلى أي أخطاء ونأمل أن يتم تحسينها.