Bài giảng Lab 6: Chuỗi và lập trình hướng đối tượng giúp người học nắm vững kiến thức về chuỗi và các hàm xử lý chuỗi; hiểu regular expression và áp dụng xử lý các kiểm tra chuỗi phức tạp.
LAB 6: CHUỖI VÀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mục tiêu - Nắm vững kiến thức chuỗi hàm xử lý chuỗi - Hiểu regular expression áp dụng xử lý kiểm tra chuỗi phức tạp Tóm tắt lý thuyết String: - Chuỗi thành phần quan trọng sử dụng nơi trang web - Có nhiều hàm php xây dựng để người sử dụng thuận lợi thao tác với chuỗi Một số hàm thông dụng với String strlen — Trả chiều dài chuỗi $n = strlen("abc"); //$n=3 rtrim — cắt khoảng trắng (hoặc ký tự khác) từ cuối chuỗi string rtrim ( string $str [, string $character_mask ] ) $str: chuỗi cần cắt, $character_mask: chuỗi ký tự cần bỏ Hàm trả chuỗi cắt bỏ ký tự yêu cầu ltrim — Giống rtrim, loại bỏ ký tự bên trái chuỗi trim — Loại bỏ ký tự yêu cầu đầu cuối chuỗi Explode(): Tách chuỗi thành mảng array explode (string $delimiter , string $string ) $delimiter: chuỗi phân cách $string: chuỗi cần tách Kết trả mảng sau tách chuỗi Implode(): Ghép phần tử mảng thành chuỗi String implode ( string $glue , array $pieces ) $glue: Chuỗi kết nối, $pieces: Mảng cần ghép phần tử Kết quả: trả chuỗi gắn kết phần tử $glue phần tử mảng Kết quả: Array ( [0] => DH [1] => 001 [2] => ABC ) SP1*SP2 str_word_count: Trả thông tin từ chuỗi: Đếm số từ chuỗi, mảng chứa từ, ký vị trí bắt đầu từ,… mixed str_word_count ( string $string [, int $format = [, string $charlist ]] ) $string: Chuỗi sử dụng để lấy thông tin $format: số nguyên có giá trị 0,1, – Trả số từ tìm 1: Trả mảng chứa từ chuỗi Trả mảng kết hợp có index vị trí từ, giá trị từ tìm chuỗi MD5, SHA1: hàm sử dụng để mã hóa chuỗi thành chuỗi Các hàm hay áp dụng việc mã hóa chuỗi mật trước lưu vào CSDL number_format — Format số nhóm số vị trí hàng ngàn number_format ($number , $decimals = , $dec_point = "." , $thousands_sep = "," ) $number: số format, $decimals: số ký số thập phân in, $dec_point: ký tự phân cách phần thập phân nguyên, ký tự phân cách cho nhóm số hàng ngàn htmlentities (string)— chuyển tất ký tự liên quan đến html (>, =0) Ví dụ: a* : nghĩa lặp lại chữ a từ tới n lần -123a: -123aaa -123 Lặp lại ký tự hay cụm ký tự đứng trước (>=1) Ví dụ: $pattern="/a+/" : nghĩa lặp lại ký tự a phải có ký tự a - 123a: 1(đúng) - 123aa: 1(đúng) - 123 : (sai) khơng có chữ a lặp $patterm="/ax+/" : biểu diễn cho chuỗi: ax, axx, axxxx - "a" + đại diện cho >=1 ký tự Tồn hay không tồn ký tự hay cụm ký tự đứng trước nó: $pattern="/ab? /" :biểu diễn cho: a, ab (b có khơng) Dấu \ kèm với meta symbol làm ý nghĩa meta symbol - trả symbol bình thường $pattern="/a\?b/": Tìm chuỗi chứa chuỗi "a?b" ? Là ký tự đặc biệt, nên đặt \? để trở thành ký tự thường Biểu diễn cho số bất kỳ: 0-9: $p ="/^\d/"; Tìm chuỗi bắt đầu ký tự số Biểu diễn ký tự số (ngược với \d): Biểu diễn ký tự bất kỳ: a-z, A-Z, 0-9 Biểu diễn ký tự đặc biệt (khơng phải a-z, A-Z, 0-9) Có khoảng trắng Gom ký tự thành nhóm: $pattern ="/\w\w(123)/"; Tìm chuỗi có chứa chuỗi 123 trước chuỗi 123 ký tự Ví dụ chuỗi: "ab0q123d4 Lặp ký tự hay cụm ký tự trước với số lần cho trước {n}: n lần {n, } Lặp lại >= n lần {n, m} Lặp lại từ n đến m lần Ví dụ: $pattern="/\w\w(\d\d){2,4}/"; Tìm chuỗi bắt đầu ký tự (số hay a-z), sau ký tự số lặp lại từ đến lần Hợp lệ: "ab0q1253d4" Toán tử or, để lựa chọn Chỉ đoạn ký tự cho phép [a-z]: ký tự thường từ a đến z [A-Z]: Các ký tự hoa từ A đến Z [0-9]: ký tự số Ví dụ: $p ="/^(\(0[1-9]{1,2}\))?[0-9]{7,8}/"; Thích hợp với: (08)66780052, 66780052, (056) 3821013 Ví dụ 3.1 - 3.2 - 3.3 Ví dụ lab6_1.php: Kiểm tra liệu nhập vào từ form với hàm đơn giản xử lý chuỗi Tên đăng nhập: có độ dài tối thiểu ký tự (khơng tính ký tự khoảng trắng đầu chuỗi) Mật khẩu: độ dài tối thiểu trường: mật mật nhập lại phải Họ tên: Phải có từ Nếu kết nhập vào hợp lệ, in thông tin nhập với họ tên có ký tự ký tự hoa, ngược lại báo lỗi Ví dụ lab6_2.php: Chứa form để nhập file gửi lên server Server nhận file in phần mở rộng file mật ngẫu nhiên Ví dụ chứa: Hàm nhận vào chuỗi tên file Hàm trả phần mở rộng file Hàm phát sinh chuỗi mật ngẫu nhiên Hàm nhận vào số nguyên dương n trả chuỗi có giá trị n ký tự ngẫu nhiên chuỗi: $s="abcdefghijkmlnopqrstuvxyz0123456789"; Ví dụ lab6_3.php: Kiểm tra liệu nhập từ form sử dụng regular expression, với điều kiện kiểm tra nâng cao a Username: Độ dài tối thiểu chứa ký tự số, dấu chấm, alphabet b Email: Phải email có định dạng hợp lệ Vận dụng 4.1 Sửa lại ví dụ lab6_1.php để: - In mật mã hóa MHA1 kết hợp giải thuật: SHA1 MD5 - Thêm textArea name=thong_tin và: Loại bỏ thẻ HTML field thong_tin Thay ký hiệu xuống hàng (\n) thẻ chuỗi nhận từ field thongtin xuất kết xử lý hình Thêm ký tự \ trước ký tự nháy đơn (‘) nội dung thong_tin gửi lên server Loại bỏ ký tự (\) trước ký tự đặc biệt chuỗi (‘ ) 4.2 Sửa lại lab6_3.php Thêm thông tin nhập vào form viết hàm sử dụng Regular expression kiểm tra liệu nhập thông tin sau - Mật phải có tối thiểu ký tự phải có ký tự số, ký tự hoa, ký tự thường - Số điện thoại: phải nhập số - Ngày sinh: Phải có định dạng ngày (dd/mm/yyyy dd-mm-yyyy) 4.3 Lấy phân tích liệu từ website khác a Bật chức allow_url_fopen file php.ini: allow_url_fopen = On b Sử dụng hàm : file_get_contents(url) để đọc liệu html từ website khác (ví dụ url là: http://thethao.vnexpress.net/ ) c In kết hình phân tích cấu trúc nội dung d Phân tích cấu trúc để lọc in thông tin chọn lọc (các thông tin nằm thẻ … Xây dựng pattern sử dụng hàm preg_match_all để lấy liệu In liệu hình hàm print_r e Duyệt qua mảng trên, để trích lấy liệu cần thiết đưa vào hiển thị table Nâng cao 5.1 Tìm kiếm thay liệu: a Lọc tất link trang web b Lọc tất địa email, điện thoại trang web c Kiểm tra tên hình ảnh đưa vào có qui định hay khơng 5.2 Hãy phân tích số trang báo điện tử, sử dụng kỹ thuật quét tin phần quét, in tiêu đề tin mục xã hội lên trình duyệt web a http://news.zing.vn/ b http://dantri.com.vn/ c http://vietnamnet.vn/ ... mảng chứa từ chuỗi Trả mảng kết hợp có index vị trí từ, giá trị từ tìm chuỗi MD5, SHA1: hàm sử dụng để mã hóa chuỗi thành chuỗi Các hàm hay áp dụng việc mã hóa chuỗi mật trước lưu vào CSDL ... Ví dụ chứa: Hàm nhận vào chuỗi tên file Hàm trả phần mở rộng file Hàm phát sinh chuỗi mật ngẫu nhiên Hàm nhận vào số nguyên dương n trả chuỗi có giá trị n ký tự ngẫu nhiên chuỗi: $s="abcdefghijkmlnopqrstuvxyz0123456789";... Regex): chuỗi miêu tả chuỗi khác, theo quy tắc cú pháp định - Biểu thức quy thường dùng trình biên tập văn tiện ích tìm kiếm xử lý văn dựa mẫu quy định - Sử dụng biểu thức qui đơn giản nhiều lập trình