Trong bài này AzBook sẽ cùng bạn tìm hiểu về chuỗi, lập trình chuỗi trong PHP.
1. Khái niệm chuỗi, khai báo và xử lý chuỗi
1.1. Khái niệm chuỗi
-
Chuỗi (string) là một chuỗi các ký tự, được sử dụng để biểu diễn văn bản trong lập trình.
-
Trong PHP, chuỗi có thể được đặt trong nháy đơn (') hoặc nháy kép (").
1.2. Khai báo chuỗi
Có nhiều cách khai báo chuỗi trong PHP:
-
Sử dụng nháy đơn:
-
Sử dụng nháy kép (cho phép nội suy biến):
$message = "Tên tôi là $name và tôi $age tuổi.";
-
Sử dụng heredoc (cho chuỗi nhiều dòng):
Đây là một đoạn văn bản dài.
Nó có thể chứa nhiều dòng.
EOT;
-
Sử dụng nowdoc (tương tự heredoc, không nội suy biến):
Đây là một đoạn văn bản dài.
Biến $name sẽ không được nội suy.
EOT;
1.3. Xử lý chuỗi cơ bản
-
Nối chuỗi: Sử dụng dấu chấm (.)
$last_name = "Doe";
$full_name = $first_name . " " . $last_name;
-
Truy cập ký tự trong chuỗi: Sử dụng index (bắt đầu từ 0)
$first_char = $string[0]; // $first_char = "H"
2. Các hàm xử lý chuỗi
PHP cung cấp nhiều hàm có sẵn để xử lý chuỗi một cách hiệu quả:
2.1. strlen(): Trả về độ dài của chuỗi
2.2. strpos(): Tìm kiếm vị trí xuất hiện đầu tiên của một chuỗi con trong chuỗi cho trước
2.3. str_replace(): Thay thế một chuỗi con bằng một chuỗi khác
2.4. trim(): Loại bỏ khoảng trắng (hoặc các ký tự khác) ở đầu và cuối chuỗi
3. Các kỹ thuật xử lý chuỗi nâng cao
3.1. Biểu thức chính quy (Regular Expression)
-
Biểu thức chính quy cung cấp cách thức linh hoạt và mạnh mẽ để tìm kiếm và thao tác với chuỗi dựa trên mẫu (pattern).
-
PHP hỗ trợ biểu thức chính quy thông qua các hàm preg_match(), preg_replace(),...
Ví dụ sử dụng preg_match() để kiểm tra định dạng email:
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $email)) {
echo "Định dạng email hợp lệ.";
} else {
echo "Định dạng email không hợp lệ.";
}
3.2. Các hàm xử lý chuỗi khác
PHP cung cấp rất nhiều hàm xử lý chuỗi khác như:
-
strtolower(), strtoupper(): Chuyển đổi chuỗi thành chữ thường/chữ hoa.
-
substr(): Trích xuất một phần của chuỗi.
-
explode(): Tách chuỗi thành mảng dựa trên ký tự phân cách.
-
implode(): Nối các phần tử trong mảng thành chuỗi.
-
...
Bài tập:
-
Viết chương trình đảo ngược một chuỗi.
-
Viết chương trình kiểm tra một chuỗi có chứa một chuỗi con cho trước hay không.
-
Viết chương trình thay thế tất cả các ký tự khoảng trắng trong chuỗi bằng dấu gạch ngang (-).
-
Viết chương trình kiểm tra xem một chuỗi có phải là chuỗi palindrome hay không (đọc xuôi hay ngược đều giống nhau).
-
Viết chương trình đếm số từ trong một chuỗi.
-
Viết chương trình kiểm tra xem một chuỗi có phải là email hợp lệ hay không bằng biểu thức chính quy.