แนะนำ: ASP+AJAX ไม่ได้รีเฟรชเพื่อเพิ่มเพื่อน เนื่องจากความสัมพันธ์ในการทำงานหนึ่งในฟังก์ชั่นคือการเพิ่มอีกฝ่ายเป็นเพื่อน ดังที่แสดงในรูป: วิธีที่ใช้คือ AJAX และรหัสที่เหมาะสมนั้นมีราคาไม่แพง: HREF = JavaScript: Void (0); onclick = add_username (' %= rs (ชื่อผู้ใช้) %'); เพิ่มเป็นเพื่อน/A การตรวจสอบ JS ที่ใช้: ภาษาสคริปต์ = JavaScript SRC = AJAX
คลาส ASP ที่ใช้ในการใช้ฟังก์ชั่นแท็กคุณสามารถเข้าใจฟังก์ชั่นเฉพาะหากคุณสามารถเข้าใจได้
แก้ไขบันทึก:
1. การเพิ่มฟังก์ชั่นส่วนขยาย, 2006-12-3
-
-
'ชื่อคลาส: tagengine
'ชื่อ: แท็กเอ็นจิ้น
'วันที่: 2006-11-29
'ผู้แต่ง: Leng Yue, Xilou
'เว็บไซต์: www.xilou.net | www.chinacms.org
'คำอธิบาย: เฉพาะฟังก์ชั่นของการแยกแท็กไม่มีฟังก์ชั่นของแท็กการแยกวิเคราะห์
'ลิขสิทธิ์: โปรดดูแหล่งที่มาสำหรับการพิมพ์ซ้ำผู้เขียน
-
'แก้ไขล่าสุด: 2006-12-3
'จำนวนการดัดแปลง: 3
'คำแนะนำในการแก้ไข: แก้ไขกฎเพื่อให้การจับคู่มีความแม่นยำมากขึ้น
'เวอร์ชันปัจจุบัน: v1.1.3
-
Class Tagengine
วัตถุปกติของ Regex ส่วนตัว
'กำหนดกฎแท็ก
Tagbegin ส่วนตัว
Tagend ส่วนตัว
blockbegin_begin ส่วนตัว
blockbegin_end ส่วนตัว
blockend_begin ส่วนตัว
Private Blockend_end
'// การเริ่มต้น
คลาสย่อย class_initialize ()
'เริ่มต้นกฎแท็ก
tagbegin = {
tagend =}
blockbegin_begin = <block:
blockbegin_end =>
blockend_begin = </block:
blockend_end =>
'เริ่มต้นวัตถุปกติ
ตั้งค่า regex = ใหม่ regexp
regex.ignorecase = true 'เป็นตัวพิมพ์ใหญ่
regex.global = true'global match
สิ้นสุดย่อย
คลาสย่อย class_terminate ()
'ปล่อยวัตถุ
ถ้า isObject (regex) ให้ตั้งค่า regex = ไม่มีอะไร
สิ้นสุดย่อย
'วิธี: RESETPATTERN ()
'พารามิเตอร์:
'return: ไม่มีค่าส่งคืน
'ฟังก์ชั่น: รีเซ็ตกฎแท็ก
Public Sub ResetPattern (Tagbegin, Tagend, _
blockbegin_begin, _
blockbegin_end, _
blockend_begin, _
blockend_end _
-
tagbegin = tagbegin
tagend = tagend
blockbegin_begin = blockbegin_begin
blockbegin_end = blockbegin_end
blockend_begin = blockend_begin
blockend_end = blockend_end
สิ้นสุดย่อย
'วิธี: getBlocks (temp, blockname)
'พารามิเตอร์: อุณหภูมิเนื้อหาที่จะจับคู่; Blockname, Block Flag ชื่อ
'return: กลับไปที่วัตถุคอลเลกชัน (จับคู่)
'ฟังก์ชั่น: รับการรวบรวมแท็กบล็อก
ฟังก์ชั่นสาธารณะ getBlocks (temp, blockname)
รูปแบบหรี่
pattern = (& blockbegin_begin & []*& blockname &/b [/w/w]*? & blockbegin_end
รูปแบบ = รูปแบบ &) ([/w/w]*?) & blockend_begin & [/n/r]*& blockname & []*& blockend_end
'Response.write รูปแบบ
regex.pattern = รูปแบบ
ตั้งค่า getBlocks = regex.execute (temp) 'ส่งคืนชุดการจับคู่
ฟังก์ชันสิ้นสุด
'วิธีการ: getBlockbyatt (temp, attributeName, attributeValue)
'อาร์กิวเมนต์: อุณหภูมิเนื้อหาที่จะจับคู่; AttributeName, ชื่อแอตทริบิวต์; AttributeValue ค่าแอตทริบิวต์
'return: กลับไปที่วัตถุคอลเลกชัน (จับคู่)
'ฟังก์ชั่น: รับชุดการจับคู่ของบล็อกตามค่าของแอตทริบิวต์ที่แน่นอนในฉลากบล็อก
ฟังก์ชั่นสาธารณะ getBlockbyatt (Temp, attributeName, AttributeValue)
รูปแบบหรี่
pattern = (& blockbegin_begin & [/w/w]*? [/n/r]+& attributeName
Pattern = Pattern & []*= []*/& Chr (34) & AttributeValue &/& Chr (34) & [/n/r]*[/w/w]*?
รูปแบบ = pattern & blockbegin_end
รูปแบบ = รูปแบบ &) ([/w/w]*?) & blockend_begin & [/w/w]*? & blockend_end
'Response.write รูปแบบ
regex.pattern = รูปแบบ
ตั้งค่า getBlockByatt = regex.execute (temp) 'ส่งคืนชุดการจับคู่
ฟังก์ชันสิ้นสุด
'วิธีการ: getattvalue (temp, attributeName)
'บทความ: อุณหภูมิเนื้อหาที่จะจับคู่; AttributeName ชื่อแอตทริบิวต์
'return: กลับไปที่วัตถุคอลเลกชัน (จับคู่)
'เอฟเฟกต์: รับค่าแอตทริบิวต์ในแท็กบล็อก
ฟังก์ชั่นสาธารณะ getattvalue (อุณหภูมิ, attributeName)
รูปแบบหรี่
รูปแบบ = [/n/r]+& attributeName & []*= []*/& chr (34) & ([^/f/n/r/t/v/& chr (34) &]*?)/& ch (34)
'Response.write รูปแบบ
regex.pattern = รูปแบบ
ตั้งค่า getattValue = regex.execute (อุณหภูมิ)
ฟังก์ชันสิ้นสุด
'วิธี: parsetag (temp, tagname, tagvalue)
'อาร์กิวเมนต์: อุณหภูมิเนื้อหาที่จะจับคู่; AttributeName, ชื่อแอตทริบิวต์; AttributeValue ค่าแอตทริบิวต์
'return: ส่งคืนสตริงที่ถูกแทนที่
'เอฟเฟกต์: แทนที่แท็กง่ายๆ
ฟังก์ชั่นสาธารณะ parsetag (temp, tagname, tagvalue)
รูปแบบหรี่
'pattern = tagbegin & []*& tagname & []*& tagend
pattern = tagbegin & tagname & tagend
regex.pattern = รูปแบบ
parsetag = regex.replace (temp, tagvalue)
ฟังก์ชันสิ้นสุด
'วิธี: ClearBlocks (อุณหภูมิ)
'อาร์กิวเมนต์: อุณหภูมิตรง
'return: ส่งคืนสตริงที่เคลียร์
'เอฟเฟกต์: ล้างแท็กบล็อกทั้งหมด
ฟังก์ชั่นสาธารณะ Clearblocks (อุณหภูมิ)
รูปแบบหรี่
รูปแบบ = blockbegin_begin & [/w/w]*? & blockbegin_end & [/w/w]*?
รูปแบบ = pattern & blockend_begin & [/w/w]*? & blockend_end
regex.pattern = รูปแบบ
clearblocks = regex.replace (temp,)
ฟังก์ชันสิ้นสุด
'วิธีการ: ClearTags (อุณหภูมิ)
'อาร์กิวเมนต์: อุณหภูมิตรง
'return: ส่งคืนสตริงที่เคลียร์
'เอฟเฟกต์: ล้างแท็กเดียวทั้งหมด
ฟังก์ชั่นสาธารณะ ClearTags (อุณหภูมิ)
รูปแบบหรี่
รูปแบบ = tagbegin & [^/f/n/r/t/v]*? & tagend
regex.pattern = รูปแบบ
cleartags = regex.replace (temp,)
ฟังก์ชันสิ้นสุด
'วิธีการ: อาบน้ำ (errdes)
'พารามิเตอร์: errdes, คำอธิบายข้อผิดพลาด
'return: ไม่มี
'เอฟเฟกต์: แสดงข้อผิดพลาด
ห้องอาบน้ำย่อยสาธารณะ (Errdes)
Dim errinfo, cssstyle
cssstyle = style = & ch (34)
CSSSTYLE = CSSSTYLE & FONT: BOLD 12PX 150%, 'Arial'; Border: 1PX Solid #CC3366;
CSSSTYLE = CSSSTYLE & WIDTH: 50%; สี:#990066; การตอบสนอง: 2px; & Chr (34)
errinfo = vbcrlf & <ul & cssstyle &> <li> & errdes & </li> </ul> & vbcrlf
Response.write errinfo
สิ้นสุดย่อย
'******************* ฟังก์ชั่นมาตรฐานสิ้นสุดลง ********************
'ต่อไปนี้เป็นส่วนขยายที่กำหนดเอง
'วิธีการ: ext_getsimpleblocks (อุณหภูมิ, blockname)
'พารามิเตอร์: อุณหภูมิเนื้อหาที่จะจับคู่; Blockname, Block Flag ชื่อ
'return: กลับไปที่วัตถุคอลเลกชัน (จับคู่)
'ฟังก์ชั่น: รับคอลเลกชันของแท็กบล็อกง่ายๆ
'ตัวอย่าง: <บล็อก: ใหม่ id = loop =/>
ฟังก์ชั่นสาธารณะ ext_getsimpleblocks (temp, blockname)
รูปแบบหรี่
Dim Blockbegin, blockend
'นิยามกฎแท็กใหม่
blockBegin = <block:
blockend =/>
pattern = blockbegin & []*& blockname &/b [/w/w]*? & blockend
regex.pattern = รูปแบบ
ตั้งค่า ext_getsimpleBlocks = regex.execute (อุณหภูมิ)
ฟังก์ชันสิ้นสุด
'******************* ฟังก์ชั่นมาตรฐานสิ้นสุดลง ********************
'ต่อไปนี้เป็นส่วนขยายที่กำหนดเอง
'วิธีการ: ext_getsimpleblocks (อุณหภูมิ, blockname)
'พารามิเตอร์: อุณหภูมิเนื้อหาที่จะจับคู่; Blockname, Block Flag ชื่อ
'return: กลับไปที่วัตถุคอลเลกชัน (จับคู่)
'ฟังก์ชั่น: รับคอลเลกชันของแท็กบล็อกง่ายๆ
'ตัวอย่าง: <บล็อก: ใหม่ id = loop =/>
ฟังก์ชั่นสาธารณะ ext_getsimpleblocks (temp, blockname)
รูปแบบหรี่
Dim Blockbegin, blockend
'นิยามกฎแท็กใหม่
blockBegin = <block:
blockend =/>
pattern = blockbegin & []*& blockname &/b [/w/w]*? & blockend
regex.pattern = รูปแบบ
ตั้งค่า ext_getsimpleBlocks = regex.execute (อุณหภูมิ)
ฟังก์ชันสิ้นสุด
'วิธีการ: ext_gettext (พา ธ )
'อาร์กิวเมนต์: เส้นทาง, เส้นทางญาติหรือเส้นทางแน่นอนไปยังข้อความที่จะอ่าน
'return: ส่งคืนเนื้อหาข้อความ
'ฟังก์ชั่น: อ่านไฟล์
'ตัวอย่าง: c = ext_gettext (tpl.htm)
ฟังก์ชั่นสาธารณะ ext_gettext (พา ธ )
สลัว fso, f, ข้อความ
เมื่อเกิดข้อผิดพลาดต่อไป
ตั้งค่า fso = createObject (scripting.filesystemobject)
ตั้งค่า f = fso.opentextfile (เส้นทาง)
text = f.readall
ถ้าเอ่อแล้ว
err.lear
อาบน้ำข้อผิดพลาดเกิดขึ้นเมื่ออ่านไฟล์ ...
ถ้า isObject (FSO) ให้ตั้งค่า fso = ไม่มีอะไร
ฟังก์ชั่นออก
สิ้นสุดถ้า
ถ้า isObject (FSO) ให้ตั้งค่า fso = ไม่มีอะไร
ext_getText = ข้อความ
ฟังก์ชันสิ้นสุด
'วิธี: ext_getincludefile (อุณหภูมิ)
'อาร์กิวเมนต์: อุณหภูมิตรง
'return: กลับไปที่วัตถุคอลเลกชัน (จับคู่)
'ฟังก์ชั่น: แยกบล็อกของ <!-#รวมไฟล์ = tpl.html->
'ตัวอย่าง: ext_getincludefile (temp) (0) .submatches (0), ส่งคืนชื่อไฟล์ที่ตรงกันครั้งแรก
ฟังก์ชั่นสาธารณะ ext_getincludefile (temp)
รูปแบบหรี่
Dim Blockbegin, blockend
'นิยามกฎแท็กใหม่
blockBegin = <!-#รวม
blockend =->
pattern = blockbegin & []*ไฟล์ []*= []*/([/w/w]*?)/[]*& blockend
regex.pattern = รูปแบบ
ตั้งค่า ext_getincludefile = regex.execute (temp)
ฟังก์ชันสิ้นสุด
ชั้นเรียนจบ
-
แชร์: รหัสตัวอย่างที่สมบูรณ์ของ ASP ที่ จำกัด IP เนื่องจากความสัมพันธ์ในการทำงานหนึ่งในฟังก์ชั่นคือการลงคะแนนให้ผู้ใช้ต้องการให้ IP เดียวกันลงคะแนนในผู้ใช้รายเดียวกันเพียงครั้งเดียวโพสต์รหัส ASP: % 'ผู้แต่ง: Wurong ที่มา: db_conn (dbs) sotherUname = trim (request.querystring (ชื่อผู้ใช้) rs_create