Trong những năm gần đây, sự phát triển vượt bậc của công nghệ thông tin đã làm tăng số lượng giao dịch thông tin trên mạng Internet một cách đáng kể đặc biệt là thư viện điện tử, tin tức điện tử. Do đó thông tin, tin tức xuất hiện trên mạng Internet cũng tăng theo với một tốc độ chóng mặt và liên tục có sự thay đổi.Với lượng thông tin đồ sộ như vậy, một yêu cầu lớn đặt ra đối với chúng ta là làm sao tổ chức và tìm kiếm thông tin có lợi và hiệu quả nhất. Việc thu thập, phân loại và trích xuất thông tin thông qua các website khác nhau hiện nay đang có nhu cầu rất lớn. Nhưng một thực tế là khối lượng thông tin quá lớn, việc thu thập và phân loại dữ liệu thủ công là điều rất khó khăn và phức tạp. Hướng giải quyết là xây dựng một hệ thống website cho phép thu thập và phân loại các thông tin trên. Việc tổng hợp thông tin từ nhiều nguồn khác nhau cung cấp cho người dùng cái nhìn tổng quát, đa chiều về thông tin mà người dùng quan tâm. Nhằm tìm hiểu và xây dựng các quá trình tìm kiếm rút trích, bóc tách thông tin từ nhiều trang web khác nhau. Qua đó xây dựng một website thông tin để thu thập, đánh giá thông tin tự động trên Internet phục vụ cho người đọc có thể nắm bắt được thông tin một cách dễ dàng, nhanh chóng và tiết kiệm thời gian. Chính vì vậy em chọn đề tài “Xây dựng website lọc, trích thông tin từ nhiều nguồn”.
LỜI CẢM ƠN Trong suốt thời gian nghiên cứu khóa luận này, nỗ lực thân, em nhận giúp đỡ, bảo tận tình thầy giáo, giáo khoa Tốn – Công Nghệ, trường Đại Học Hùng Vương Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo, Th.S Đinh Thái Sơn- giảng viên trường Đại Học Hùng Vương Thầy giành nhiều thời gian quý báu tận tình hướng dẫn em suốt trình thực khóa luận này, đồng thời, thầy người giúp em lĩnh hội nhiều kiến thức chuyên môn rèn luyện cho em tác phong nghiên cứu đề tài Qua em xin gửi lời cảm ơn chân thành sâu sắc tới thầy giáo cô giáo khoa Tốn - Cơng Nghệ nhiệt tình giúp đỡ em suốt trình học tập em thực hồn thiện khóa luận Mặc dù cố gắng song khóa luận em khơng tránh khỏi thiếu sót Vì em mong nhận góp ý thầy giáo, giáo bạn để khóa luận hoàn thiện Em xin chân thành cảm ơn! Việt Trì, Tháng năm 2014 Sinh viên Hà Thị Như Quỳnh MỤC LỤC DANH MỤC VIẾT TẮT Từ viết tắt API (Application Programming Interface) CSS (Cascading Style Sheets) DOM (Document Object Model) HTML ( HyperText Markup Language) HTTP (HyperText Transfer Protocol ) URL (Uniform Resource Locator) XML (EXtensible Markup Language) XHTML (Extensible HyperText Markup Language) Ý nghĩa Giao diện lập trình ứng dụng Tập tin định kiểu theo tầng Mơ hình đối tượng văn Ngơn ngữ đánh dấu siêu văn Giao thức truyền tải siêu văn Địa Website Ngôn ngữ đánh dấu mở rộng Ngôn ngữ đánh dấu siêu văn mở rộng DANH MỤC BẢNG BIỂU DANH MỤC HÌNH ẢNH MỞ ĐẦU Lý chọn đề tài khóa luận Trong năm gần đây, phát triển vượt bậc công nghệ thông tin làm tăng số lượng giao dịch thông tin mạng Internet cách đáng kể đặc biệt thư viện điện tử, tin tức điện tử Do thông tin, tin tức xuất mạng Internet tăng theo với tốc độ chóng mặt liên tục có thay đổi Với lượng thơng tin đồ sộ vậy, yêu cầu lớn đặt tổ chức tìm kiếm thơng tin có lợi hiệu Việc thu thập, phân loại trích xuất thơng tin thơng qua website khác có nhu cầu lớn Nhưng thực tế khối lượng thông tin lớn, việc thu thập phân loại liệu thủ cơng điều khó khăn phức tạp Hướng giải xây dựng hệ thống website cho phép thu thập phân loại thông tin Việc tổng hợp thông tin từ nhiều nguồn khác cung cấp cho người dùng nhìn tổng quát, đa chiều thông tin mà người dùng quan tâm Nhằm tìm hiểu xây dựng trình tìm kiếm rút trích, bóc tách thơng tin từ nhiều trang web khác Qua xây dựng website thông tin để thu thập, đánh giá thông tin tự động Internet phục vụ cho người đọc nắm bắt thông tin cách dễ dàng, nhanh chóng tiết kiệm thời gian Chính em chọn đề tài “Xây dựng website lọc, trích thơng tin từ nhiều nguồn” Mục tiêu khóa luận Mục tiêu khóa luận nhằm tìm hiểu nghiên cứu cách thức, q trình rút trích bóc tách thơng tin tự động từ nội dung website internet qua xây dựng website tổng hợp thơng tin Nhiệm vụ nghiên cứu 6 Sưu tập tài liệu, giáo trình liên quan đến trình thu thập web, phương pháp bóc tách liệu, kỹ thuật lấy trang tin, để xây dựng website tổng hợp tin tức từ nhiều nguồn Phương pháp nghiên cứu • Phương pháp nghiên cứu lý luận: Đọc nghiên cứu tài liệu, giáo trình • có liên quan đến mã nguồn phân hóa, hệ thống hóa kiến thức Phương pháp tổng kết kinh nghiệm: Qua việc nghiên cứu, tham khảo tài liệu, giáo trình từ rút kinh nghiệm để áp dụng vào việc nghiên • cứu Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp hướng dẫn, giảng viên khác để hoàn thiện mặt nội dung hình thức khóa luận Đối tượng phạm vi nghiên cứu • Đối tượng: Nghiên cứu trình thu thập web, phương pháp bóc tách liệu, kỹ thuật lấy trang tin • Phạm vi: Xây dựng website tổng hợp tin tức từ nhiều nguồn Ý nghĩa khoa học Qua nghiên cứu đề tài bước đầu đề cập đến giải pháp kỹ thuật thu thập thông tin tự động internet, phục vụ cho việc phân tích thơng tin thu thập theo lĩnh vực, chủ đề khác nhằm giúp cho người dùng theo dõi thông tin cách thuận tiện, dễ dàng Đề tài nghiên cứu giúp sinh viên có khả thực hành tốt xây dựng website Mặt khác, đề tài tài liệu tham khảo dành cho bạn sinh viên thầy cô quan tâm đến vấn đề Bố cục khóa luận Ngoài phần mở đầu, kết luận, tài liệu tham khảo, khóa luận chia thành chương Chương 1: Tổng quan kỹ thuật bóc tách thơng tin Chương 2: Thiết kế hệ thống website 7 Chương 3: Xây dựng phần mềm 8 CHƯƠNG TỔNG QUAN VỀ KỸ THUẬT BĨC TÁCH THƠNG TIN 1.1 Giới thiệu trình thu thập web Trình thu thập web (Web crawler) chương trình khai thác cấu trúc đồ thị web di chuyển từ trang qua trang khác Thời kỳ đầu có tên tượng bọ web, rô-bốt, nhện sâu, ngày tên gọi phổ biến trình thu thập web Mặc dù cụm từ “thu thập” không lột tả hết tốc độ chương trình này, chúng có tốc độ làm việc đáng kinh ngạc, thu thập liệu lên đến hàng chục ngàn trang vòng vài phút Từ thời kỳ đầu, động lực quan trọng thúc đẩy trình phát triển việc thiết kế trình thu thập web lấy nội dung trang web thêm chúng đường dẫn chúng vào kho lưu trữ trang – kiểu kho lưu trữ dùng để phục vụ cho ứng dụng cụ thể cơng cụ tìm kiếm web (search engine) Các trình thu thập thường bắt đầu cách chọn số đường dẫn (URL) ứng với trang web ghé thăm đầu tiên, trang gọi trang hạt giống Quá trình dừng lại trình thu thập thu thập đủ số trang u cầu frontier rỗng, tức khơng URL để duyệt Tuy mơ tả đơn giản đằng sau chúng nhiều vấn đề hóc búa liên quan đến kết nối mạng, bẫy nhện, tiêu chuẩn trích xuất URL, chuẩn hóa trang HTML, bóc tách nội dung trang HTML vv Sau có danh sách URL dùng cho việc thu thập, ta thực trình lấy trang Tất trang lấy lần lưu vào kho lưu trữ giống sở liệu cơng cụ tìm kiếm, đến không cần thu thập thêm Tuy nhiên web thực thể động với không gian liên tục phát triển thay đổi nhanh cách chóng mặt, 9 thơng tin phải liên tục thu thập để giúp ứng dụng cập nhật, ví dụ bổ sung trang loại bỏ trang bị xóa, di chuyển cập nhật trang bị sửa đổi Các trang web chủ yếu viết ngôn ngữ đánh dấu HTML, XHTML nhắm đến đối tượng sử dụng người khơng phải máy tính Các trang web lại chứa đựng nhiều thơng tin có ích mà người muốn thu thập lưu trữ lại, mà cần phải có kỹ thuật bóc tách trích xuất thơng tin theo chế tự động Các kỹ thuật bóc tách liệu (parsing) mức đơn giản việc bóc tách siêu liên kết, mức phức tạp chút bóc tách phần nội dung trang web Về chất, trình thu thập web q trình duyệt đệ quy đồ thị Các web xem đồ thị với trang đỉnh (node) siêu liên kết cạnh Quá trình lấy trang trích xuất liên kết bên tương tự việc mở rộng tìm kiếm đỉnh đồ thị Trình thu thập sử dụng kỹ thuật tìm kiếm khác cho kết tìm kiếm khác nhau, so sánh hiệu suất kỹ thuật tìm kiếm từ rút đánh giá hiệu suất trình thu thập Trình thu thập web thành phần toàn hệ thống search engine Mục đích hệ thống search engine số lượng trang web đầu vào đạt giá trị cao có thể, trình thu thập web làm cơng việc trì sở liệu đánh mục, trả giá trị thu thập lập mục cho hàng triệu truy vấn nhận từ người dùng Các trang đánh mục dựa thuật toán ưu tiên phương pháp dựa kinh nghiệm (heuristic) Ngồi ra, sử dụng trình thu thập web để xây dựng phần mềm tập trung thông tin, trang web tổng hợp thông tin, dựa chế tự động tìm phát tài nguyên 10 Hình 3.11 Giao diện thêm sản phẩm c Giao diện lấy sản phẩm tự động Lấy sản phẩm tự động không qua RSS Trong menu “Quản lý sản phẩm ”, người dùng bấm vào chức “Lấy sản phẩm tự động” Người dùng chọn nhanh thao tác “Lấy sản phẩm tự động” bấm vào biểu tượng phần “Danh sách sản phẩm” Giao diện lấy sản phẩm tự động xuất hiện, người dùng nhập thông tin vào mục bấm nút “Cập nhật” để thực lấy sản phẩm tự động Thời gian lấy sản phẩm nhanh hay chậm tùy thuộc vào số lượng sản phẩm lấy Sau lấy sản phẩm xong, thông báo tổng số sản phẩm, số lượng sản phẩm lấy được, số sản phẩm trùng lên Người dùng bấm Ok để quay trang quản lý sản phẩm Đường dẫn: Đường dẫn trang sản phẩm cần lấy Danh mục sản phẩm: Danh mục chứa sản phẩm 58 Hình 3.12 Giao diện lấy sản phẩm tự động 3.3.2.4 Giao diện quản lý tin tức a Giao diện danh sách tin tức Hình 3.13 Giao diện danh sách tin tức Trong phần danh sách tin tức, người dùng bấm vào thao tác [Sửa] tin tức Giao diện sửa tin tức lên, người dùng nhập vào thông tin bấm nút để lưu lại Các mục nhập vào giống với thêm tin tức Xóa 1tin tức: Người dùng bấm vào thao tác [Xóa] tin tức 59 Xóa hay nhiều tin tức: Người dùng đánh dấu tích vào tin tức cần xóa, bấm nút , xuất cảnh báo xác nhận, bấm Ok để xóa Người dùng chọn tồn tin tức trang hiển thị cách bấm vào dấu tích (cùng hàng với ID, Tên tin tức, v.v.) để chọn tất Xóa tồn tin tức: Người dùng bấm vào nút để xóa tồn tin tức (có loại tin tức chọn), bấm Ok để xác nhận thao tác Chọn số lượng tin tức hiển thị: Người dùng thay đổi số lượng tin tức hiển thị trang cách lựa chọn ComboBox Phân trang: Người dùng bấm vào trang cần xem, nút bị mờ không bấm b Giao diện thêm tin tức Giải thích mục chức thêm tin tức: - Tiêu đề tin: Tiêu đề tin tức - Danh mục cha: Danh mục chứa tin tức - Ảnh đại diện: Ảnh đại diện cho tin tức - Trạng thái: Trạng thái danh mục, chọn “Hoạt động” sử dụng tin tức đó, chọn “Khóa” muốn khóa tin tức lại Khi tin tức bị khóa, tin tức khơng hiển thị menu, cho dù người dùng có chọn hiển thị menu hay không Nếu người dùng truy cập vào tin tức khóa, trang báo lỗi 404 (khơng tìm thấy trang này) xuất - Keyword: Từ khóa hỗ trợ SEO (*) - Description: Nội dung mô tả hỗ trợ SEO, không bắt buộc nhập - Nội dung tin tức: Nội dung tin tức 60 Hình 3.14 Giao diện thêm tin tức c Giao diện lấy tin tức tự động Lấy tin tức tự động qua RSS Hình 3.15 Giao diện lấy tin tự động Trong menu “Quản lý tin tức”, người dùng bấm vào chức “Lấy tin tự động” Người dùng chọn nhanh thao tác “Lấy tin tự động” bấm vào biểu tượng phần “Danh sách tin tức” Giao diện lấy tin tự động xuất hiện, người dùng nhập thông tin vào mục bấm nút 61 “Cập nhật” để thực lấy tin tự động Thời gian lấy tin nhanh hay chậm tùy thuộc vào số lượng tin tức lấy Sau lấy tin xong, thông báo tổng số tin tức, số lượng tin lấy được, số tin trùng lên Người dùng bấm Ok để quay trang quản lý tin tức Đường dẫn: Đường dẫn RSS (*) tin tức cần lấy (Ví dụ: Nếu lấy tin từ VnExpress vào http://vnexpress.net/rss, chép đường dẫn RSS cần lấy, ví dụ tin kinh doanh http://vnexpress.net/rss/kinh-doanh.rss) Lấy tin từ: Nguồn lấy tin tức Danh mục tin: Danh mục chứa tin tức Chú ý: - Chỉ lấy tin tức từ trang có chia sẻ RSS - Chọn danh mục tin phải danh mục không chứa danh mục 3.3.2.5 Giao diện quản lý tài khoản a Giao diện danh sách tài khoản Hình 3.16 Giao diện danh sách tài khoản b Giao diện thêm tài khoản 62 Hình 3.17 Giao diện thêm tài khoản Thông tin tài khoản: Tên tài khoản: Tên tài khoản để đăng nhập vào trang quản trị Mật khẩu: Mật tài khoản đó, mật phải có độ dài tối thiểu ký tự (để đảm bảo tính bảo mật cho tài khoản) Phân quyền: Chọn quyền “Quản trị” cho phép tài khoản đăng nhập vào trang quản trị Thông tin cá nhân: Ảnh đại diện: Ảnh đại diện cho tài khoản đó, hiển trị trang quản trị Ngày sinh: Nhập ngày sinh theo định dạng quy định: năm/tháng/ngày 63 KẾT LUẬN Trong thời gian thực đề tài, em hoàn thành đề tài “Xây dựng website lọc tríc, thơng tin từ nhiều nguồn” ngơn ngữ PHP Đề tài đạt kết sau: • Tìm hiểu kiến trúc trình thu thập web, chế hoạt động • trình thu thập web bản, kỹ thuật thu thập liệu Từ kiến thức thu trình tìm hiểu trình thu thập web, ứng dụng xây dựng Website tự động tổng hợp tin tức từ • nhiều nguồn 24h.com.vn, Vnexpress, tinmoi.vn, doanhnhan.vn Giao diện Website thân thiện, dễ nhìn, màu sắc khơng đối lập, dễ sử • dụng, bố cục khoa học, thuận tiện cho việc tìm kiếm Thơng tin, sản phẩm đa dạng sống động, thông tin cập nhật • sửa đổi thường xuyên Người dùng liên hệ đăng ký theo dõi hoạt động website Mặc dù thực nội dung xây dựng Website thành cơng Tuy nhiên, để hoàn thiện hơn, đề tài cần phát triển số nội dung sau : • Cải thiện chức phân hệ bóc tách liệu Text từ nội dung HTML cách linh động thay dựa cấu hình có • sẵn Mở rộng thêm nhiều chức năng, cải thiện giao diện thuận tiện cho người dùng 64 TÀI LIỆU THAM KHẢO [1] Phạm Hữu Khang (2010), Lập Trình Web Bằng PHP5.3 Và Cơ Sở Dữ Liệu MySQL 5.1 tập1, tập 2, Nhà xuất Phương Đông [2] Nguyễn Trường Sinh (chủ biên) (2008), Sử dụng PHP&MySQL thiết kế Web động, Nhà xuất Thống Kê [3] A.Z Broder, M Najork, and J L Wiener (2003), E±cient URL Caching for World Wide Web Crawling pp.679-689, in Proc WWW [4] M Burner (1997), Crawling Towards Eternity: Building an Archive of the World Wide Web, Web Techniques Magazine [5] J Edwards, K McCurley, and J Tomlin (2001), An Adaptive Model for OptimizingPerformance of an Incremental Web Crawler pp.106-11, in Proc WWW 65 PHỤ LỤC Code chương trình Chuẩn hóa URL (Rewrite URL) public function maketitle($str) { $str=trim($str);//Loại bỏ ký tự trắng đầu cuối //Loại bỏ utf8 $str=str_replace('đ','d',$str); $str=str_replace('Đ','D',$str); $str=preg_replace("/(ê|ế|ề|ể|ễ|ệ|é|ẹ|ẻ|è|ẽ)/",'e', $str); $str=preg_replace("/(Ê|Ế|Ề|Ể|Ễ|Ệ|É|Ẹ|Ẻ|È|Ẽ)/",'E', $str); $str=preg_replace("/(ơ|ố|ồ|ổ|ỗ|ộ|ò|ó|ỏ|ọ|õ)/",'o', $str); $str=preg_replace("/(Ơ|Ố|Ồ|Ổ|Ỗ|Ộ|Ị|Ĩ|Ỏ|Ọ|Õ)/",'O', $str); $str=preg_replace("/(í|ì|ỉ|ĩ|ị)/",'i',$str); $str=preg_replace("/(Í|Ì|Ỉ|Ĩ|Ị)/",'I',$str); $str=preg_replace("/(ý|ỳ|ỷ|ỹ|ỵ)/",'y',$str); $str=preg_replace("/(Ý|Ỳ|Ỷ|Ỹ|Ỵ)/",'Y',$str); $str=preg_replace("/(ú|ù|ủ|ũ|ụ|ư|ừ|ứ|ử|ữ|ự)/",'u', $str); $str=preg_replace("/(Ú|Ù|Ủ|Ũ|Ụ|Ư|Ừ|Ứ|Ử|Ữ|Ự)/",'U', $str); $str=preg_replace("/(ă|á|à|ả|ã|ạ|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ| ẩ|ẫ|ậ)/",'a',$str); $str=preg_replace("/(Ă|Á|À|Ả|Ã|Ạ|Ắ|Ằ|Ẳ|Ẵ|Ặ|Â|Ấ|Ầ| Ẩ|Ẫ|Ậ)/",'A',$str); $str=str_replace(" ",'-',$str);//chuyển dấu cách ->gạch (-) //Chạy lệnh cuối: Loại bỏ ký hiệu đặc biệt lại $str=preg_replace("/[^-a-zA-Z0-9]/",'',$str); return trim($str);} Lấy tin tức tự động qua RSS sử dụng thư viện simple_html_dom public function laytin($linkrss,$label,$danhmuc) { require_once('simple_html_dom.php'); $rss= new DOMDocument();//Khởi tạo đối tượng DOm if (@$rss->load($linkrss) === false) $this->thongbao('Đường dẫn nhập vào không hợp lệ'); else{ //Lấy danh sách tiêu đề tin tức để so sánh trùng $strdanhsach="SELECT tintuc_tieude FROM tbtintuc WHERE tintuc_trangthai=1"; $danhsach=$this->selectall($strdanhsach); $tongso=0; $layduoc=0; //Vòng lặp lấy liệu từ thẻ tên item foreach($rss->getElementsByTagName('item') as $item) { $tongso++; //Lấy Tiêu đề, tóm tắt, đường link xem chi tiết sản phẩm $tieude=$item ->getElementsByTagName('title')->item(0)->nodeValue;//Tiêu đề $check=true; foreach($danhsach as $item1){ if(strcmp($item1['tintuc_tieude'], $tieude)==0) $check=false; } if($check){ $layduoc++; $des=$item ->getElementsByTagName('description') ->item(0)->nodeValue;//Mô tả ngắn $link=$item ->getElementsByTagName('link')->item(0)->nodeValue;//Đường link để lấy phần nội dung //Lấy phần tóm tắt: thực lấy liệu phần mô tả ngắn (strip_tags: hàm loại bỏ tồn HTML có phần mơ tả ngắn) $tomtat=strip_tags($des); //Lấy đường dẫn hình ảnh phần mơ tả ngắn (nếu có) $img=str_get_html($des); //Lấy phần nội dung tin tức $html=file_get_html($link); $hinhanh=@$img->find('img',0)->src; if(!isset($hinhanh)) $hinhanh=@$html->find($label,0) ->find('img',0)->src; if(!isset($hinhanh)) $hinhanh=$this>base_url.'upload/no -image.jpg'; $noidung=@$html->find($label,0) ->innertext;//Phần nôi dung //Cập nhật CSDL $stradd="INSERT INTO tbtintuc (tintuc_tieude, tintuc_tomtat, tintuc_hinhanh, tintuc_noidung, tintuc_date, tintuc_trangthai, danhmuc_id, taikhoan_id) VALUES (?,?,?,?,now(),1,?,3)"; $re=$this->pdo->prepare($stradd);//Đưa vào trạng thái chờ $re->bindParam(1,$tieude); $re->bindParam(2,$tomtat); $re->bindParam(3,$hinhanh); $re->bindParam(4,$noidung); $re->bindParam(5,$danhmuc); $re->execute(); } } $this->thongbao("Lấy {$layduoc} tin tổng số {$tongso} (".($tongso-$layduoc)." tin tức trùng nhau)"); } } Lấy danh sách sản phẩm từ Vật Giá (vatgia.com) //Lấy liệu sản phẩm trang vatgia public function tromvg($danhmuc,$link) { $one=$this->selectone("SELECT * FROM tbdanhmuc WHERE danhmuc_tieude='$danhmuc'"); $iddm=$one['danhmuc_id']; require('simple_html_dom.php'); $arr=explode(';',$link); foreach($arr as $newlink){ $html=file_get_html($newlink); $list=$html->find('div[class=wrapper]',1); foreach($list->find('div[class=fl]') as $item) { $objimg=$item->find('img',0); $img=$objimg->src; $tieude=$objimg->alt; $objgia=$item->find('div[class=price]',0); $giaban=str_replace('.','',str_replace('VN Đ','',$objgia->innertext)); $stradd="INSERT INTO tbsanpham (sanpham_tieude, sanpham_giaban, sanpham_hinhanh, sanpham_tinhtrang, sanpham_soluong, sanpham_xuatxu, sanpham_mota, sanpham_keyword, sanpham_des, sanpham_date, sanpham_trangthai, danhmuc_id) VALUES (?, ?, ?, 1, 10, 'Chính hãng', '', ?, ?, now(), 1, ?)"; $re = $this->pdo->prepare($stradd); $re->bindParam(1,$tieude); $re->bindParam(2,$giaban); $re->bindParam(3,$img); $re->bindParam(4,$tieude); $re->bindParam(5,$tieude); $re->bindParam(6,$danhmuc); $re->execute(); } } } Phần khởi tạo kết nối cần thiết (Khởi tạo biến SESSION, kết nối với CSDL, v.v.) session_start();//Khoi động session //Nhúng thư viện smarty vào website require('libs/Smarty.class.php'); require('model/thuvien.php'); $smarty=new Smarty;//Khởi tạo đối tượng smarty $smarty->template_dir='templates/user/';//Trỏ lại đường dẫn giao diện trang người dùng $smarty->configLoad('cauhinh.dat');//Đọc file cấu hình $config=$smarty->getConfigVars();//Lấy tất biến cấu hình $lib=new LIB($config);//khởi tạo thư viện LIB $data['base_url']=$config['base_url']; $lib->config=$config; $lib->base_url=$data['base_url']; $smarty->assign('lib',$lib);//Khai báo biến lib tầng View Phần đầu trang: //Xử lý login if(isset($_COOKIE['nhopass'])){ - $nhopass=$_COOKIE['nhopass']; $strlog="SELECT * FROM tbtaikhoan WHERE taikhoan_trangthai=1 AND taikhoan_id=".$nhopass; $_SESSION['login']=$lib->selectone($strlog); }else{ if(isset($_POST['btnlog'])){ $user=$_POST['txtuser']; $pass=md5($_POST['txtpass']); $strlog="SELECT * FROM tbtaikhoan WHERE taikhoan_user='$user' AND taikhoan_pass='$pass' AND taikhoan_trangthai=1 "; $log=$lib->selectone($strlog); if(!empty($log)){ $_SESSION['login']=$log; if(isset($_POST['cbrem']) && $_POST['cbrem']==true){ setcookie('nhopass', $_SESSION['login']['taikhoan_id'],time() +2592000); //Lưu tài khoản vòng tháng } $lib->redirect('trang-chu.html'); }else $lib->thongbao('Sai tên đăng nhập mật khẩu!'); } } //Xử lý logout if(isset($_GET['out']) && $_GET['out']==1) { unset($_SESSION['login']); setcookie('nhopass','',time()-1); unset($_COOKIE['nhopass']); $lib->redirect('trang-chu.html'); } if(isset($_SESSION['login'])) $login=$_SESSION['login']; else $login=''; $smarty->assign('login',$login); //Lấy danh sách danh mục để thị menu $strpage="SELECT * FROM tbdanhmuc WHERE danhmuc_trangthai=1 AND danhmuc_parent=0 ORDER BY danhmuc_thutu ASC"; $page=$lib->selectall($strpage,false); $smarty->assign('page',$page); //Lập trình lấy giá trị biến pg URL if(isset($_GET['pg'])) $pg=$_GET['pg']; else{ $url=$lib->getsiteurl(); if($url==$data['base_url']) $pg='trang-chu'; else $pg='404'; } if(!file_exists('control/'.str_replace('-','', $pg).'.php')) $pg='404'; //Lấy thông tin danh mục xem để thị(keyword, description) if($pg=='chitietsanpham'){ if(isset($_GET['id'])){ $id=$_GET['id']; $strone="SELECT sanpham_tieude, sanpham_keyword, sanpham_des FROM tbsanpham WHERE sanpham_trangthai=1 AND sanpham_id=$id"; $one=$lib->selectone($strone); $head['tieude']=$one['sanpham_tieude']; $head['keyword']=$one['sanpham_keyword']; $head['des']=$one['sanpham_des']; $head['duongdan']='san-pham'; } }elseif($pg=='chitiettintuc'){ if(isset($_GET['id'])){ $id=$_GET['id']; $strone="SELECT tintuc_tieude, tintuc_keyword, tintuc_des FROM tbtintuc WHERE tintuc_trangthai=1 AND tintuc_id=$id"; $one=$lib->selectone($strone); $head['tieude']=$one['tintuc_tieude']; $head['keyword']=$one['tintuc_keyword']; $head['des']=$one['tintuc_des']; $head['duongdan']='tin-tuc'; } }else{ $strone="SELECT danhmuc_tieude, danhmuc_keyword, danhmuc_des, danhmuc_duongdan FROM tbdanhmuc"; if(isset($_GET['id'])) $strone.=" WHERE danhmuc_id=".$_GET['id']; else $strone.=" WHERE danhmuc_duongdan='".$pg."'"; $one=$lib->selectone($strone); $head['tieude']=$one['danhmuc_tieude']; $head['keyword']=$one['danhmuc_keyword']; $head['des']=$one['danhmuc_des']; $head['duongdan']=$one['danhmuc_duongdan']; } $smarty->assign('head',$head); $pg=str_replace('-','',$pg); $smarty->assign('data',$data); $smarty->display('includes/header.html'); Phần cuối trang: $smarty->display('includes/footer.html’); ... hiểu xây dựng trình tìm kiếm rút trích, bóc tách thơng tin từ nhiều trang web khác Qua xây dựng website thông tin để thu thập, đánh giá thông tin tự động Internet phục vụ cho người đọc nắm bắt thông. .. tạp Hướng giải xây dựng hệ thống website cho phép thu thập phân loại thông tin Việc tổng hợp thông tin từ nhiều nguồn khác cung cấp cho người dùng nhìn tổng quát, đa chiều thông tin mà người dùng... phục vụ cho người đọc nắm bắt thông tin cách dễ dàng, nhanh chóng tiết kiệm thời gian Chính em chọn đề tài Xây dựng website lọc, trích thơng tin từ nhiều nguồn Mục tiêu khóa luận Mục tiêu khóa