ขณะนี้ไม่มีปัญหาในการสร้างเพจแบบคงที่ แต่จะสร้างไฟล์แบบคงที่ด้วยตัวเลขเช่น 20030405-1.htm 20030405-2.htm 20030405-3.htm ตามกฎบางอย่างได้อย่างไร เพื่อนจาก CSDN ตอบครั้งที่แล้ว ฉันก็เลยคัดลอกมา ข้อความต้นฉบับมีดังนี้
-
ใช้สถิติเกี่ยวกับจำนวนคำของบทความ แล้วตัดทอนเอาต์พุตเมื่อถึงจำนวนคำที่กำหนด แต่เนื้อหาที่แบ่งหน้าจะถูกตัดทอนในตำแหน่งที่อธิบายไม่ได้ซึ่งไม่เป็นมิตรมากนัก
ง่ายมาก ให้มองหาสัญลักษณ์ต่อไปนี้ใกล้กับตำแหน่งที่คุณต้องการตัดทอน:
- - - -
หากมี <p> หรือ <br> อยู่ด้านหลัง ตัวแบ่งหน้า สิ่งสำคัญคือต้องศึกษารูปแบบของบทความ
-
ถ้า Request.ServerVariables(Content_Length) > 0 แล้ว
content = Request.Form(textarea1)PageLength = 1,000 'จำนวนคำต่อหน้า
CLength = Len (เนื้อหา)
PageCount = Int(Clength/PageLength) + 1 'คำนวณจำนวนเพจที่หรี่ลง PageArray
เปลี่ยน PageArray(PageCount)Seperator = Array(chr(13),chr(10),.,!,?,;,,,,') 'ตัวคั่น PageArray(0) = 0
ตำแหน่ง = 0
สำหรับ j=0 ถึง ubound (ตัวแยก)
Pos = instr(PageArray(i)+900,content,Seperator(j)) 'ตำแหน่งใกล้ PageArray(i)+900 คือ 100 คำ, 1-999 ปรับได้
ในขณะที่ Pos > 0 และ Pos < (i+1)*PageLength และ Pos > i*PageLength
PageArray(i) = ตำแหน่ง
Pos = instr(Pos+PageLength,เนื้อหา,ตัวคั่น(j))
wendif PageArray(i) > 0 แล้ว
การตอบสนองเขียน 0:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound (ตัวแยก) + 1
สิ้นสุดถ้า
ถัดไปสำหรับ i=1 ถึง PageCount-1
เพจอาร์เรย์(i) = 0
ตำแหน่ง = 0
สำหรับ j=0 ถึง ubound (ตัวแยก)
Pos = instr(PageArray(i-1)+950,เนื้อหา,ตัวคั่น(j))
ในขณะที่ Pos > 0 และ Pos < (i+1)*PageLength และ Pos > i*PageLength
PageArray(i) = ตำแหน่ง
Pos = instr(Pos+PageLength,เนื้อหา,ตัวคั่น(j))
เวน
ถ้า PageArray(i) > 0 แล้ว
Response.เขียน i&:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound (ตัวแยก) + 1
สิ้นสุดถ้า
ต่อไป
เอาต์พุตถัดไป = กลาง (เนื้อหา, 1, PageArray (0))
เอาท์พุท = แทนที่ (เอาท์พุท chr (13), <br>)
การตอบสนองเขียน <br><br>ย่อหน้า 1<br>
การตอบสนองเขียนเอาต์พุตสำหรับ i=1 ถึง PageCount-2
เอาท์พุท = กลาง (เนื้อหา, PageArray (i-1) +1, PageArray (i) -PageArray (i-1))
เอาท์พุท = แทนที่ (เอาท์พุท chr (13), <br>)
Response.เขียน <br><br>ย่อหน้า &i+1&<br>
การตอบสนองเขียนเอาต์พุต
ผลลัพธ์ของย่อหน้าสุดท้ายถัดไปไม่ได้ถูกเขียนเป็นอย่างอื่น
-
<การกระทำของแบบฟอร์ม=วิธีการ=POST id=ชื่อform1=form1>
<แถว TEXTAREA=70 cols=120 id=textarea1 name=textarea1>
</ข้อความ>
<ประเภทอินพุต=ค่าส่ง=ส่ง id=ชื่อ submit1=submit1>
</รูปแบบ>
<%สิ้นสุดถ้า%>
-------------------------------------------------- -------------------------------------------------- -------------
กำหนดความยาวของแต่ละหน้า MaxLength
ความยาวข้อความทั้งหมดTotalLength
สแกนหาผลตอบแทนที่ยากในตอนท้ายของแต่ละย่อหน้าในบทความ
และคำนวณความยาว
เมื่อเกิน MaxLength จะแบ่งเป็นหน้าแรก
ลบชิ้นส่วนออกก่อนการคืนแบบฮาร์ดนี้ และทำซ้ำการดำเนินการข้างต้น