Hàm strtok() PHP sử dụng như thế nào ?

Hàm strtok() PHP là một hàm tích hợp sẵn trong ngôn ngữ lập trình PHP. Nó tương tự như hàm strtok() trong ngôn ngữ C. Hàm strtok() được sử dụng để phân mảnh hoặc tách một chuỗi thành các phần nhỏ dựa trên các ký tự phân tách đã cho.

Hàm strtok() chấp nhận đối số chuỗi đầu vào cùng với các ký tự phân tách (là đối số thứ hai). Hàm này tách một chuỗi thành các token (phần nhỏ của chuỗi). Ví dụ, nếu có chuỗi “Xin chào mọi người! Chào mừng đến với xứ sở kỳ diệu”, ta có thể tách nó thành các phần nhỏ bằng cách sử dụng ký tự khoảng trắng làm phân tách.

Một điểm quan trọng cần lưu ý về hàm strtok() PHP là chỉ có lần gọi đầu tiên của hàm này sử dụng đối số chuỗi. Nghĩa là, hàm này chỉ sử dụng đối số chuỗi một lần khi ta gọi strtok() lần đầu tiên. Sau đó, nó cần các đối số khác làm đối số phân tách.

Hàm strtok() PHP là gì?

Hàm strtok() PHP được sử dụng để phân tách một chuỗi thành các token bằng cách sử dụng các ký tự phân tách đã cho. Nó chỉ sử dụng đối số chuỗi một lần, nó cần các đối số khác làm đối số phân tách. Hàm này trả về một token chuỗi.

Hướng dẫn sử dụng hàm strtok() PHP

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn PHP từ cơ bản đến nâng cao tại dự án Phát Triển Website.

Cú pháp của hàm strtok()

Cú pháp của hàm strtok() như sau:

strtok($str, $token)

Trong đó:

  • $str (bắt buộc): Đây là đối số chuỗi đầu vào để tách thành các token.
  • $token (bắt buộc): Đây là đối số đánh dấu phân cách. Nó chỉ định một hoặc nhiều ký tự phân cách hoặc ký tự tách bởi đó chuỗi sẽ được tách.

Giá trị trả về của hàm strtok()

Hàm strtok() trả về một chuỗi token. Nó trả về các chuỗi được phân tách bởi các ký tự phân cách đã cho.

Ví dụ về cách sử dụng hàm strtok()

Dưới đây là một số ví dụ cụ thể giúp bạn hiểu cách hoạt động của hàm strtok().

Ví dụ 1

Trong ví dụ dưới đây, chúng ta sẽ tách chuỗi thành các token nhỏ bằng cách sử dụng ký tự “e” làm phân cách.

$str = "Xin chào mọi người! Chào mừng đến với xứ sở kỳ diệu";
$token = "e";

$tok = strtok($str, $token);
while ($tok !== false) {
    echo "$tok<br>";
    $tok = strtok($token);
}

Kết quả của chương trình trên sẽ là:

Xin chào mọi người!
Chào mừng đến với xứ sở kỳ diệu

Ví dụ 2

Trong ví dụ dưới đây, chúng ta s sẽ tách chuỗi thành các token bằng cách sử dụng ký tự khoảng trắng làm phân cách.

$str = "Xin chào mọi người! Chào mừng đến với xứ sở kỳ diệu";
$token = " ";

$tok = strtok($str, $token);
while ($tok !== false) {
    echo "$tok<br>";
    $tok = strtok($token);
}

Kết quả của chương trình trên sẽ là:

Xin
chào
mọi
người!
Chào
mừng
đến
với
xứ
sở
kỳ
diệu

Cách triển khai hàm strtok() PHP

Hàm strtok() PHP được sử dụng để chia một chuỗi thành các chuỗi nhỏ hơn (token). Các token được phân cách bởi các ký tự trong chuỗi delimiter.

Cú pháp của hàm strtok() như sau:

strtok(string, delimiter)

Trong đó:

  • string: Chuỗi cần chia nhỏ.
  • delimiter: Chuỗi ký tự phân cách các token.

Hàm strtok() PHP trả về một chuỗi là token đầu tiên, hoặc FALSE nếu không còn token nào. Để lấy các token tiếp theo, bạn cần gọi lại hàm strtok() với tham số là kết quả trả về của lần gọi trước đó.

Ví dụ:

$string = "This is a string";
$delimiter = " ";

$token = strtok($string, $delimiter);

while ($token !== FALSE) {
  echo $token . PHP_EOL;
  $token = strtok($delimiter);
}

Trong ví dụ trên, hàm strtok() PHP sẽ chia chuỗi “This is a string” thành các token sau:

This
is
a
string

Dưới đây là một số ví dụ về cách triển khai hàm strtok() PHP:

  • Chia một chuỗi thành các từ:
$string = "This is a string";
$delimiter = " ";

$tokens = [];

while ($token = strtok($string, $delimiter)) {
  $tokens[] = $token;
}

print_r($tokens);

Kết quả:

Array
(
    [0] => This
    [1] => is
    [2] => a
    [3] => string
)
  • Chia một chuỗi thành các số:
$string = "123,456,789";
$delimiter = ",";

$numbers = [];

while ($number = strtok($string, $delimiter)) {
  $numbers[] = intval($number);
}

print_r($numbers);

Kết quả:

Array
(
    [0] => 123
    [1] => 456
    [2] => 789
)
  • Chia một chuỗi thành các chuỗi có độ dài nhất định:
$string = "This is a very long string";
$delimiter = " ";
$length = 5;

$tokens = [];

while ($token = strtok($string, $delimiter)) {
  if (strlen($token) <= $length) {
    $tokens[] = $token;
  }
}

print_r($tokens);

Kết quả:

Array
(
    [0] => This
    [1] => is
    [2] => a
    [3] => very
)

Ưu và nhược điểm của hàm strtok() PHP

Ưu điểm:

  • Hàm strtok() là một hàm tích hợp sẵn trong PHP.
  • Nó cho phép ta tách một chuỗi thành các token dựa trên các ký tự phân tách đã cho.
  • Hàm này rất hữu ích khi ta muốn phân tích cú pháp hoặc tách dữ liệu đầu vào.

Nhược điểm:

  • Hàm strtok() chỉ sử dụng đối số chuỗi một lần khi ta gọi strtok() lần đầu tiên. Sau đó, nó cần các đối số khác làm đối số phân tách.
  • Khi ta cung cấp nhiều hơn hai đối số cho hàm strtok(), nó sẽ tạo ra một cảnh báo và không hiển thị bất kỳ đầu ra nào.

Lời khuyên khi sử dụng hàm strtok() PHP

  • Khi sử dụng hàm strtok() PHP, hãy chắc chắn rằng bạn chỉ cung cấp hai đối số.
  • Hãy kiểm tra kết quả trả về của hàm strtok() để đảm bảo rằng chuỗi đã được phân tách thành các token một cách chính xác.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về hàm strtok() PHP. Hàm này cho phép ta tách một chuỗi thành các token dựa trên các ký tự phân tách đã cho. Chúng ta cũng đã biết cú pháp, giá trị trả về, ưu và nhược điểm của hàm strtok(). Ngoài ra, chúng ta cũng đã xem qua các ví dụ và lời khuyên khi sử dụng hàm này. Hy vọng rằng bài viết này đã giúp bạn hiểu rõ thêm về hàm strtok() PHP.   

Hàm strtok() là gì?

Hàm strtok() là một hàm tích hợp sẵn trong ngôn ngữ lập trình PHP. Nó được sử dụng để phân tách một chuỗi thành các token dựa trên các ký tự phân tách đã cho.

Cú pháp của hàm strtok() là gì?

Cú pháp của hàm strtok() như sau: strtok($str, $token). Trong đó, $str là đối số chuỗi đầu vào để tách thành các token và $token là đối số đánh dấu phân cách.

Hàm strtok() trả về giá trị gì?

Hàm strtok() trả về một chuỗi token. Nó trả về các chuỗi được phân tách bởi các ký tự phân cách đã cho.

Hàm strtok() có nhược điểm gì?

Hàm strtok() chỉ sử dụng đối số chuỗi một lần khi ta gọi strtok() lần đầu tiên. Sau đó, nó cần các đối số khác làm đối số phân tách. Khi ta cung cấp nhiều hơn hai đối số cho hàm strtok(), nó sẽ tạo ra một cảnh báo và không hiển thị bất kỳ đầu ra nào.