Bài 5: Chuỗi trong PHP

Bài 5: Chuỗi trong PHP

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:

$name = 'John Doe';

 

  • Sử dụng nháy kép (cho phép nội suy biến): 

$age = 30;
$message = "Tên tôi là $name và tôi $age tuổi.";

 

  • Sử dụng heredoc (cho chuỗi nhiều dòng):

$text = <<<EOT
Đâ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):

$text = <<<'EOT'
Đâ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 (.)

$first_name = "John";
$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)

$string = "Hello";
$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

$length = strlen("Hello"); // $length = 5

 

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 

$position = strpos("Hello world", "world"); // $position = 6

 

2.3. str_replace(): Thay thế một chuỗi con bằng một chuỗi khác

$new_string = str_replace("world", "PHP", "Hello world"); // $new_string = "Hello PHP"

 

2.4. trim(): Loại bỏ khoảng trắng (hoặc các ký tự khác) ở đầu và cuối chuỗi 

$cleaned_string = trim("  Hello world!  "); // $cleaned_string = "Hello world!"

 

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:

$email = "[email protected]";
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:

  1. Viết chương trình đảo ngược một chuỗi.

  2. 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.

  3. 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 (-).

  4. 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).

  5. Viết chương trình đếm số từ trong một chuỗi.

  6. 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.