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 532 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Bài 3 Một số kỹ thuật lập trình PHP nâng cao
Trường học Đại Học Công Nghệ Thông Tin và Truyền Thông
Chuyên ngành Lập trình PHP nâng cao
Thể loại Bài giảng
Định dạng
Số trang 39
Dung lượng 461,46 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tạo và sử dụng biểu thức chính quySo khớp các ký tự Sử dụng lớp ký 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ể

Trang 1

Bài 3

Một số kỹ thuật lập trình PHP nâng cao

Trang 2

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

Trang 3

Tạo và sử dụng biểu thức chính quy

So khớp các ký tự

Sử dụng lớp ký 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

Trang 4

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:

$author = 'Ray Harris';

$editor = 'Joel Murach';

$author_match = preg_match($pattern, $author);

$editor_match = preg_match($pattern, $editor);

Trang 5

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

Trang 6

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);

Trang 7

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 ký 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

Trang 8

So khớp các ký 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

Trang 9

Chuỗi mẫu Ý nghĩa

Bất kỳ ký tự đơn nào ngoại trừ ký tự dòng mới

\w Bất kỳ chữ cái, số và dấu _

\W Bất kỳ ký tự nào ngoại trừ chữ cái, số và dấu _

\D Bất kỳ 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ỳ ký tự nào ngoại trừ khoảng trắng

Chuỗi mẫu cho các loại ký tự

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 9

Trang 10

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-3461';

Trang 11

Sử dụng lớp ký tự

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 11

$string = 'The product code is MBT-3461';

Trang 12

Sử dụng các siêu ký tự (metacharacter)

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 12

Trang 14

Chuỗi mẫu Ý nghĩa

\b Bắt đầu hoặc kết 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

Trang 15

So khớp vị trí xâu

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 15

$string = 'Ray Harris';

Trang 16

So khớp chuỗi mẫu con

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 16

$name = 'Rob Rebertson';

preg_match('/^(Rob)|(Bob)b/', $name);

//Trả về 1

preg_match('/^(\w\w\w) \1/', $name);

//Trả về 1

Trang 17

So khớp các chuỗi mẫu lặp lại

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 17

Trang 18

Các xác nhận trước:

Ví dụ:

Xác nhận trước (Look-ahead assertion)

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 18

Trang 19

Xác nhận trước đảo ngược

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 19

Trang 20

(?=.*[[:punct:]]) //Ít nhất một dấu câu

[[:print:]]{6,} //Ít nhất sáu ký tự in được

Trang 22

Biểu thức chính quy nhiều dòng

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 22

$string = "Ray Harris\nAuthor";

Trang 23

Biểu thức chính quy toàn cục

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 23

$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 '<div>' $match '</div>';

//Hiển thị MBT-6745 và MBT-5712 }

Trang 24

Sử dụng hàm preg_place để thay thế một chuỗi mẫu với một xâu:

Hàm preg_replace

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 24

$items = 'MBT-6745 MBS-5729';

$items = preg_replace('/MB[ST]/', 'ITEM’, $items);

echo $items; // Hiển thị ITEM-6745 ITEM-5729

Trang 25

Sử dụng hàm preg_split để tách một chuỗi dựa trên mẫu so khớp:

foreach ($items as $item) {

echo '<li>' $item '</li>';

}

Trang 26

Các biểu thức chính quy dùng để kiểm tra tính hợp lệ

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 26

//Số điện thoại với định dạng: 999-999-9999

Trang 28

Xác thực ngày với một thành phần không hợp lệ

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 28

$date = '8/10/209'; //Ngày không hợp lệ

$date_pattern = '/^(0?[1-9]|1[0-2])\/'

9]|[12][[:digit:]]|3[01])\/'

'(0?[1-.'[[:digit:]]{4}$/';

$match = preg match($date pattern, $date); // Trả về 0

Trang 29

Xác thực địa chỉ email đầy đủ

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 29

function valid_email ($email) {

$parts = explode(“@”, $email);

if (count($parts) != 2 ) return false;

if ( strlen ($parts[0]) > 64) return false;

if ( strlen ($parts[1]) > 255) return false;

$local_part = '/' $address '|' $quoted '/';

$local_match = preg_match($local_part, $parts[0]);

if ($local_match === false || $local_match != 1) return

false;

Trang 30

Xác thực địa chỉ email đầy đủ

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 30

$hostname =

'([[:alnum:]]([-[:alnum:]]{0,62}[[:alnum:]])?)';

$hostnames = '(' $hostname '(\-' $hostname ')*)';

$top = '\.[[:alnum:]]{2,6}';

$domain_part = '/^' $hostnames $top '$/';

$domain_match = preg_match($domain_part, $parts[1]);

if ($domain_match === false || $domain_match != 1) return false;

return true;

Trang 32

Cú pháp câu lệnh tạo ngoại lệ mới:

Cú pháp câu lệnh ném ngoại lệ:

Ngoại lệ (Exception)

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 32

new Exception ($message [, $code])

throw $exception

Trang 33

Hàm có thể ném ra một ngoại lệ:

Ngoại lệ

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 33

function calculate_future_value ($investment,

for ($i = 1; $i <= $years; $i++) {

$future_value =($future_value + ($future_value

* $interest_rate * 01));

}

return round ($futureValue, 2);

}

Trang 34

Câu lệnh sẽ kích hoạt việc ném ngoại lệ:

Ngoại lệ

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 34

$futureValue = calculate_future_value(10000, 0.06, 0); // Ném ngoại lệ

Trang 35

Phương thức Giải thích

getMessage() Trả về thông báo được truyền vào cho Exception

getCode() Trả về mã lỗi được truyền vào cho Exception

getFile() Trả về file mà trong đó Exception đã được ném ra

getLine() Trả về dòng mã nơi Exception được ném ra

getTrace() Trả về mảng chứa ngăn xếp dò dấu cho đối tượng Exception getTraceAsString() Trả về chuỗi chứa ngăn xếp dò dấu cho đối tượng Exception

Phương thức của đối tượng Exception

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 35

Trang 36

catch ( ExceptionClass $exceptionName) { statements }

[ catch ( ExceptionClass $exceptionName) { statements } ]

try {

$fv = calculate_future_value(10000, 0.06, 0);

//Ném lỗi

echo 'Future value was calculated successfully.';

} catch ( Exception $e) {

echo 'Error: ' $e-> getMessage ();

}

Trang 37

Câu lệnh try-catch ném lại một đối tượng ngoại lệ:

} catch ( Exception $e) {

// làm gì đó trước khi ném ngoại lệ

throw $e;

}

Trang 38

Câu lệnh try - catch bắt hai kiểu ngoại lệ:

echo 'PDOException: ' $e-> getMessage ();

} catch ( Exception $e) {

echo 'Exception: ' $e-> getMessage ();

}

Trang 39

Biểu thức chính quy định nghĩa một chuỗi mẫu

được dùng để tìm kiếm trong một chuỗi

Xác nhận trước là kiểu xác nhận đặc biệt yêu

cầu chuỗi mẫu con cần được so khớp để cả

chuỗi mẫu được so khớp

Sử dụng câu lệnh throw để ném một đối tượng Exception (ngoại lệ)

Sử dụng câu lệnh try-catch để bắt bất kỳ ngoại

lệ nào được ném ra

Tổng kết bài học

Bài 3 - Một số kỹ thuật lập trình PHP nâng cao 39

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w