#!/usr/bin/perl
# 17 may 00
# used at dharma.school.net.th/cgi-bin/
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
$word = param ('word');
$start_book = param ('start_book') || 1;
$start_byte = param ('start_byte') || 0;
$MAX_RECORD = 80;
$OLD_FORM = start_form()."ข้อความที่ต้องการค้นหา".textfield('word').submit('search').end_form();
#
#body {font-family: Cordia New}
$HTML_HEAD = <<__END_HTML_HEAD__;
ค้นพระไตรปิฎก: ลานธรรมเสวนา
ลานธรรมเสวนา

$OLD_FORM
ผลการค้นหา "$word"
__END_HTML_HEAD__
$HTML_TAIL = <<__END_HTML_TAIL__;
__END_HTML_TAIL__
@book_label = split /\n/,q(
พระไตรปิฎกเล่มที่ ๑ วินัยปิฎกที่ ๑ มหาวิภังค์ ปฐมภาค
พระไตรปิฎกเล่มที่ ๒ วินัยปิฎกที่ ๒ มหาวิภังค์ ทุติยภาค
พระไตรปิฎกเล่มที่ ๓ วินัยปิฎกที่ ๓ ภิกขุนีวิภังค์
พระไตรปิฎกเล่มที่ ๔ วินัยปิฎกที่ ๔ มหาวรรค ภาค ๑
พระไตรปิฎกเล่มที่ ๕ วินัยปิฎกที่ ๕ มหาวรรค ภาค ๒
พระไตรปิฎกเล่มที่ ๖ วินัยปิฎกที่ ๖ จุลวรรค ภาค ๑
พระไตรปิฎกเล่มที่ ๗ วินัยปิฎกที่ ๗ จุลวรรค ภาค ๒
พระไตรปิฎกเล่มที่ ๘ วินัยปิฎกที่ ๘ ปริวาร
พระไตรปิฎกเล่มที่ ๙ สุตตันตปิฎกที่ ๑ ทีฆนิกาย สีลขันธวรรค
พระไตรปิฎกเล่มที่ ๑๐ สุตตันตปิฎกที่ ๒ ทีฆนิกาย มหาวรรค
พระไตรปิฎกเล่มที่ ๑๑ สุตตันตปิฎกที่ ๓ ทีฆนิกาย ปาฏิกวรรค
พระไตรปิฎกเล่มที่ ๑๒ สุตตันตปิฎกที่ ๔ มัชฌิมนิกาย มูลปัณณาสก์
พระไตรปิฎกเล่มที่ ๑๓ สุตตันตปิฎกที่ ๕ มัชฌิมนิกาย มัชฌิมปัณณาสก์
พระไตรปิฎกเล่มที่ ๑๔ สุตตันตปิฎกที่ ๖ มัชฌิมนิกาย อุปริปัณณาสก์
พระไตรปิฎกเล่มที่ ๑๕ สุตตันตปิฎกที่ ๗ สังยุตตนิกาย สคาถวรรค
พระไตรปิฎกเล่มที่ ๑๖ สุตตันตปิฎกที่ ๘ สังยุตตนิกาย นิทานวรรค
พระไตรปิฎกเล่มที่ ๑๗ สุตตันตปิฎกที่ ๙ สังยุตตนิกาย ขันธวารวรรค
พระไตรปิฎกเล่มที่ ๑๘ สุตตันตปิฎกที่ ๑๐ สังยุตตนิกาย สฬายตนวรรค
พระไตรปิฎกเล่มที่ ๑๙ สุตตันตปิฎกที่ ๑๑ สังยุตตนิกาย มหาวารวรรค
พระไตรปิฎกเล่มที่ ๒๐ สุตตันตปิฎกที่ ๑๒ อังคุตตรนิกาย เอก-ทุก-ติกนิบาต
พระไตรปิฎกเล่มที่ ๒๑ สุตตันตปิฎกที่ ๑๓ อังคุตตรนิกาย จตุกกนิบาต
พระไตรปิฎกเล่มที่ ๒๒ สุตตันตปิฎกที่ ๑๔ อังคุตตรนิกาย ปัญจก-ฉักกนิบาต
พระไตรปิฎกเล่มที่ ๒๓ สุตตันตปิฎกที่ ๑๕ อังคุตตรนิกาย สัตตก-อัฏฐก-นวกนิบาต
พระไตรปิฎกเล่มที่ ๒๔ สุตตันตปิฎกที่ ๑๖ อังคุตตรนิกาย ทสก-เอกาทสกนิบาต
พระไตรปิฎกเล่มที่ ๒๕ สุตตันตปิฎกที่ ๑๗ ขุททกนิกาย ขุททกปาฐ-ธรรมบท-อุทาน
พระไตรปิฎกเล่มที่ ๒๖ สุตตันตปิฎกที่ ๑๘ ขุททกนิกาย วิมาน-เปตวัตถุ เถร-เถรีคาถา
พระไตรปิฎกเล่มที่ ๒๗ สุตตันตปิฎกที่ ๑๙ ขุททกนิกาย ชาดก ภาค ๑
พระไตรปิฎกเล่มที่ ๒๘ สุตตันตปิฎกที่ ๒๐ ขุททกนิกาย ชาดก ภาค ๒
พระไตรปิฎกเล่มที่ ๒๙ สุตตันตปิฎกที่ ๒๑ ขุททกนิกาย มหานิทเทส
พระไตรปิฎกเล่มที่ ๓๐ สุตตันตปิฎกที่ ๒๒ ขุททกนิกาย จูฬนิทเทส
พระไตรปิฎกเล่มที่ ๓๑ สุตตันตปิฎกที่ ๒๓ ขุททกนิกาย ปฏิสัมภิทามรรค
พระไตรปิฎกเล่มที่ ๓๒ สุตตันตปิฎกที่ ๒๔ ขุททกนิกาย อปทาน ภาค ๑
พระไตรปิฎกเล่มที่ ๓๓ สุตตันตปิฎกที่ ๒๕ ขุททกนิกาย อปทาน ภาค ๒
พระไตรปิฎกเล่มที่ ๓๔ อภิธรรมปิฎกที่ ๑ ธรรมสังคณีปกรณ์
พระไตรปิฎกเล่มที่ ๓๕ อภิธรรมปิฎกที่ ๒ วิภังคปกรณ์
พระไตรปิฎกเล่มที่ ๓๖ อภิธรรมปิฎกที่ ๓ ธาตุกถา-ปุคคลปัญญัติปกรณ์
พระไตรปิฎกเล่มที่ ๓๗ อภิธรรมปิฎกที่ ๔ กถาวัตถุปกรณ์
พระไตรปิฎกเล่มที่ ๓๘ อภิธรรมปิฎกที่ ๕ ยมกปกรณ์ ภาค ๑
พระไตรปิฎกเล่มที่ ๓๙ อภิธรรมปิฎกที่ ๖ ยมกปกรณ์ ภาค ๒
พระไตรปิฎกเล่มที่ ๔๐ อภิธรรมปิฎกที่ ๗ มหาปัฎฐานปกรณ์ ภาค ๑
พระไตรปิฎกเล่มที่ ๔๑ อภิธรรมปิฎกที่ ๘ มหาปัฎฐานปกรณ์ ภาค ๒
พระไตรปิฎกเล่มที่ ๔๒ อภิธรรมปิฎกที่ ๙ มหาปัฎฐานปกรณ์ ภาค ๓
พระไตรปิฎกเล่มที่ ๔๓ อภิธรรมปิฎกที่ ๑๐ มหาปัฎฐานปกรณ์ ภาค ๔
พระไตรปิฎกเล่มที่ ๔๔ อภิธรรมปิฎกที่ ๑๑ มหาปัฎฐานปกรณ์ ภาค ๕
พระไตรปิฎกเล่มที่ ๔๕ อภิธรรมปิฎกที่ ๑๒ มหาปัฎฐานปกรณ์ ภาค ๖
);
#---------------------------------------------------เริ่มตัวโปรแกรม
print header();
print $HTML_HEAD;
$count = 0;
foreach $book ('01'..'45') {
next if ($book<$start_book);
$buffer = "";
open ( FILE, "../tipitaka/sutra/tipitaka$book.txt") or die "can't open $book.txt: $!";
seek(FILE, $start_byte, 0);
while () {
chomp;
next unless /$word/o;
$pos = tell(FILE) -1 - length;
s/^( {13,}.*)/$1<\/b>/;
s/ /\240/g;
s/($word)/$1<\/font>/og;
$buffer .= " $_
\n";
last if (++$count>$MAX_RECORD);
}
if ($buffer){
print "$book_label[$book]
\n ";
print $buffer;
}
if ($count>$MAX_RECORD){
print start_form().hidden('word');
print "";
print "";
print submit("Show Next 80").end_form() ;
last;
}
# last if (time()-$^T>30);
}
print "
ค้นหาใช้เวลา ", (time()-$^T), " วินาที\n";
print $HTML_TAIL;