1. Trang chủ
  2. » Công Nghệ Thông Tin

bài 3 một số kỹ thuật lập trình php nâng cao

39 531 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 461,46 KB

Nội dung

Bài 3 Một số kỹ thuật lập trình PHP nâng cao Cách tạo một biểu thức chính quy và xử lý bằng hàm preg_match Cách sử dụng biểu thức chính quy nhiều dòng, toàn cục Cách sử dụng hàm preg_replace và preg_split để làm việc với biểu thức chính quy Cơ chế sử dụng biểu thức chính quy trong xác thực dữ liệu Cơ chế tạo, ném và xử lý ngoại lệ Mục tiêu Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 2 Tạo và sử dụng biểu thức chính quy So khớp các tự Sử dụng lớp tự Tạo chuỗi mẫu (pattern) Sử dụng xác nhận trước (look-ahead assertion) Sử dụng biểu thức chính quy nhiều dòng Sử dụng biểu thức chính quy toàn cục Thay thế biểu thức chính quy bằng một xâu Làm việc với biểu thức chính quy Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 3 Hàm so khớp biểu thức chính quy: Cách tạo một biểu thức chính quy: Hai xâu để kiểm tra: Cách tìm chuỗi: Biểu thức chính quy Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 4 preg_match($pattern, $string) $pattern = '/Harris/'; $author = 'Ray Harris'; $editor = 'Joel Murach'; $author_match = preg_match($pattern, $author); $editor_match = preg_match($pattern, $editor); Kiểm tra lỗi trong biểu thức chính quy Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 5 if ($author_match === false) { echo 'Error testing author name'; } else if ($author_match === 0) { echo 'Author name does not contain Harris'; } else { echo 'Author name contains Harris'; } Một biểu thức chính quy không phân biệt chữ hoa hay chữ thường: Cách sử dụng: Biểu thức chính quy không phân biệt chữ hoa hay thường Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 6 $pattern = '/murach/i'; $editor = 'Joel Murach'; $editor_match = preg_match($pattern, $editor); Khái niệm biểu thức chính quy (regular expression) Khái niệm chuỗi mẫu (pattern) Chuỗi mẫu cho các tự đặc biệt: Chuỗi mẫu (pattern) Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 7 Chuỗi mẫu Ý nghĩa \ \ tự \ \ / tự / \ t Tab \ n Dòng (line) mới \ r Quay lại \ f Form feed \ xhh tự Latin-1 với giá trị là hai chữ số hệ thập phân So khớp các tự đặc biệt Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 8 $string = "© 2010 Mike's Music. \ All rights reserved (5/2010)."; preg_match('/\xA9/', $string); //So khớp © và trả về 1 preg_match('///', $string); //Trà về false và đưa ra cảnh báo preg_match('/\/', $string); //So khớp / và trả về 1 preg_match('/\\\\/', $string); //So khớp \ và trả về 1 Chuỗi mẫu Ý nghĩa . Bất kỳ tự đơn nào ngoại trừ tự dòng mới \ w Bất kỳ chữ cái, số và dấu _ \ W Bất kỳ tự nào ngoại trừ chữ cái, số và dấu _ \ d Bất kỳ chữ số nào \ D Bất kỳ tự nào ngoại trừ chữ số \ s Bất kỳ khoảng trắng nào (tab, dấu cách, dòng mới, …) \ S Bất kỳ tự nào ngoại trừ khoảng trắng Chuỗi mẫu cho các loại tự Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 9 Các loại tự so khớp Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 10 $string = 'The product code is MBT-3461'; preg_match('/MB.', $string); //So khớp MBT và trả về 1 preg_match('/MB\d', $string); //Không so khớp gì và trả về 0 preg_match('/MBT-\d', $string); //So khớp MBT-3 và trả về 1 [...]... return true; Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 30 Xử lý ngoại lệ Tạo và ném ngoại lệ Sử dụng biểu thức try-catch Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 31 Ngoại lệ (Exception) Cú pháp câu lệnh tạo ngoại lệ mới: new Exception($message [, $code]) Cú pháp câu lệnh ném ngoại lệ: throw $exception Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 32 Ngoại lệ Hàm có thể ném ra một ngoại lệ:... /^(0?[1-9]|l[0-2])\/(0?[l9]|[12][[sdigit:]] |3[ 01])\/[[:digit:]]{4}$/ Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 26 Xác thực số điện thoại $phone = '559-555-6624'; / /Số điện thoại hợp lệ $phone_pattern = '/^[[:digit:]] {3} -[[:digit:]] {3} [[:digit:]]{4}$/'; $match = preg_match($phone_pattern, $phone); //Trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 27 Xác thực ngày với một thành phần không hợp lệ $date... 0 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 15 So khớp chuỗi mẫu con $name = 'Rob Rebertson'; preg_match('/^(Rob)|(Bob)b/', $name); //Trả về 1 preg_match('/^(\w\w\w) \1/', $name); //Trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 16 So khớp các chuỗi mẫu lặp lại $phone = '559-555-6627'; preg_match('/^d {3} -\d {3} -\d{4}$/', $phone); //Trả về 1 $fax = '(559) 555-6 635 '; preg_match('/^\(\d {3} \)... =($future_value + ($future_value * $interest_rate * 01)); } return round($futureValue, 2); } Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 33 Ngoại lệ Câu lệnh sẽ kích hoạt việc ném ngoại lệ: $futureValue = calculate_future_value(10000, 0.06, 0); // Ném ngoại lệ Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 34 Phương thức của đối tượng Exception Phương thức Giải thích getMessage() Trả về thông báo... MBT -3 và trả về 1 preg_match('/MBT[_*-]/',$string); //So khớp MBT- và trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 12 Sử dụng dấu ngoặc preg_match('/MB[[:punct:]]', $string); //So khớp MBT- và trả về 1 preg_match('/MBT[[:digit:]]/', $string); //Không so khớp gì và trả về 0 preg_match('/MB[[:upper:]]/', $string); //So khớp MBT và trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 13 Chuỗi... Harris và trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 22 Biểu thức chính quy toàn cục $string = "MBT_6745 MBT-5712"; $pattern = '/MBT-[[:digit:]]{4}'; $count = preg_match_all($pattern, $string, $matches); //Count có giá trị 2 foreach ($matches[0] as $match) { echo '' $match ''; //Hiển thị MBT-6745 và MBT-5712 } Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 23 Hàm preg_replace... số Ví dụ: $pattern = '/^(?=.*[[:digit:]])[[:alnum:]]{6}$'; preg_match($pattern, 'Harris'); //Xác nhận thất bại và trả về 0 preg_match($pattern, 'Harri5'); //Trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 18 Xác nhận trước đảo ngược $pattern = '/^(? !3[ 2-9])[0 -3] [[:digit:]]$/'; preg_match($pattern, '32 '); //Xác nhận thất bại và trả về 0 preg_match($pattern, '31 '); //Trả về 1 Bài 3 - Một số kỹ. .. preg_match($pattern, '31 '); //Trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 19 Chuỗi mẫu kiểm tra độ phức tạp của mật khẩu Chuỗi mẫu: $pw_pattern = '/^(?=.*[[:digit:]])(?=.*[[:punct:]])[[:print:]]{6,}$/' Các thành phần: ^ (?=.*[[:digit:]]) (?=.*[[:punct:]]) [[:print:]]{6,} $ Bài 3 - Một số kỹ thuật lập trình PHP nâng cao //Bắt đầu xâu //Ít nhất một chữ số //Ít nhất một dấu câu //Ít nhất sáu tự in được... ($items as $item) { echo '' $item ''; } Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 25 Các biểu thức chính quy dùng để kiểm tra tính hợp lệ / /Số điện thoại với định dạng: 999-999-9999 /^[[:digit:]] {3} -[[:digit:]] {3} -[[:digit:]]{4}$/ / /Số thẻ ghi nợ với định dạng: 9999-9999-9999-9999 /^[[sdigit:]]{4}{-[[sdigit:]]{4}) {3} $/ //Mã vùng với một trong hai định dạng sau: 99999 hoặc 99999-9999... ?\d {3} -\d{4}$/', $fax); //Trả về 1 $phone_pattern = '^(\d {3} -)|(\(\d {3} \) ?)\d {3} -\d{4}$'; preg_match($phone_pattern, $phone); //Trả về 1 preg_match($phone_pattern, $fax); //Trả về 1 Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 17 Xác nhận trước (Look-ahead assertion) Các xác nhận trước: (?=[[:digit:]] //Ký tự kế tiếp trong chuỗi mẫu phải là chữ số (?=.*[[:digit:]]) //Chuỗi mẫu phải chứa ít nhất một . các loại ký tự Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 9 Các loại ký tự so khớp Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 10 $string = 'The product code is MBT -34 61'; preg_match('/MB.',. thúc một từ (không nằm trong ngoặc) B Vị trí không phải là bắt đầu hoặc kết thúc một từ Chuỗi mẫu cho vị trí xâu Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 14 So khớp vị trí xâu Bài 3 - Một. thế biểu thức chính quy bằng một xâu Làm việc với biểu thức chính quy Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 3 Hàm so khớp biểu thức chính quy: Cách tạo một biểu thức chính quy: Hai xâu

Ngày đăng: 23/05/2014, 17:28

TỪ KHÓA LIÊN QUAN

w