Hàm explode() trong PHP

Từ phiên bản PHP 4, có một số các hàm xử lý chuỗi rất tiện lợi như explode, implode… giúp cho công việc phân tích, sàng lọc chuỗi dễ chịu hơn nhiều. Trong bài viết này chúng ta sẽ làm quen với hàm explode trong PHP cùng với một số ví dụ hay dùng trong thực tế.

1. Cơ bản về hàm explode trong PHP

Hàm explode trong PHP cho phép bạn chuyển một chuỗi sang một mảng dựa trên các ký tự phân cách. Trong thực tế, xử lý chuỗi là rất cần thiết và sử dụng khá thường xuyên, ví dụ khi bạn muốn tách họ và tên của một người dùng, tách từng từ khóa trong một danh sách từ khóa có phân cách bằng một ký tự nào đó…

Cú pháp của hàm explode:

explode(separator,string,limit)

Trong đó:

  • separator: ký tự hoặc chuỗi ký tự phân cách sử dụng để phân biệt các phần tử trong chuỗi.
  • string: chuỗi cần tách thành mảng.
  • limit: xác định số phần tử của mảng đầu ra.
    • >0: trả về mảng có số phần tử là limit phần tử đầu
    • <0: trả về mảng có số phần tử là limit phần tử cuối
    • 0: trả về mảng với 1 phần tử

Chú ý: Hàm explode được giới thiệu từ phiên bản PHP 4, tham số limit được thêm vào từ PHP 4.1 và hỗ trợ giá trị âm từ PHP 5.1.0.

2. Các ví dụ thực tế sử dụng hàm explode

2.1 Ví dụ đơn giản về explode

Một cách đơn giản để lưu nhiều giá trị vào một cột đó là sử dụng dấu phân cách, cách thức này được sử dụng khá nhiều trước đây khi chưa có các công nghệ như XML, JSON… Ví dụ trong một bảng dữ liệu để lưu thông tin người dùng trong một cột người ta sử dụng chuỗi !# để phân cách các thông tin:

Nguyễn Văn A!#19810101!#Hà Nội!#anv@allaravel.com

Để bóc tách chuỗi này chúng ta sử dụng explode

<?php
$strUserInformation = "Nguyễn Văn A!#19810101!#Hà Nội!#anv@allaravel.com";
$arrUserInformation = explode("!#", $strUserInformation);
print_r($arrUserInformation);

Kết quả:

Array ( [0] => Nguyễn Văn A [1] => 19810101 [2] => Hà Nội [3] => anv@allaravel.com )

2.2 Ví dụ phân tách từ khóa trong một danh sách từ khóa sử dụng explode

Trong các ứng dụng blog, CMS… trong các bài viết chúng ta thường nhập vào một danh sách từ khóa được phân cách với nhau bằng dấu , hoặc ; hoặc |… vậy làm thế nào để phân cách chuỗi từ khóa này thành một mảng tiện cho xử lý và lưu trữ vào CSDL?

Ví dụ khi danh sách từ khóa, thẻ cho bài viết này như sau: “xử lý chuỗi trong PHP, explode trong PHP; PHP tách chuỗi | PHP string process”, ở đây dấu phân cách sử dụng rất đa dạng.

<?php
$keywords =  "xử lý chuỗi trong PHP, explode trong PHP; PHP tách chuỗi | PHP string process";
$delimiters = array(",",";","|");
$keywords = str_replace($delimiters, $delimiters[0], $keywords);
$arrKeyword= explode($delimiters[0], $keywords);
foreach ($arrKeywordas $key)
{
   // Code xử lý cho từng từ khóa và lưu CSDL
}

Đầu tiên chúng ta thực hiện replace toàn bộ dấu phân cách về một loại, ở đây đưa hết về dấu phẩy. Tiếp theo, sử dụng explode như thông thường để thực hiện chuyển chuỗi thành mảng.

2.3 Lọc họ tên người dùng sử dụng php explode

Trong các ứng dụng để tránh cho người dùng phải mất quá nhiều thao tác khi nhập họ tên thường chúng ta đưa cả họ và tên đầy đủ vào một ô nhập liệu sau đó trong xử lý nghiệp vụ mới bóc tách họ, tên người dùng này. Ví dụ: “Nguyễn Văn A”, để bóc tách họ tên trong PHP chúng ta có thể sử dụng hàm explode:

<?php
$fullName = "Nguyễn Văn A";
$arrName = explode(" ", $fullName);
$firstName = array_shift($arrName); //Họ chính là phần tử đầu tiên của mảng
$lastName = array_pop($arrName); //Tên chính là phần tử cuối cùng của mảng
$middleName = implode(" ", $arrName); //Tên đệm chính là kết nối các phần tử còn lại

Trong ví dụ trên có sử dụng hàm implode, trong PHP hàm này ngược lại với hàm explode. Hàm implode biến một mảng thành một chuỗi.

3. Kết luận

Qua bài viết bạn đã nắm được cách áp dụng explode một cách thành thục khi lập trình PHP. Sử dụng explode giúp giảm thời gian viết code, các xử lý chuỗi cũng đơn giản hơn khi kết hợp với các vòng lặp trong PHP. Nếu bạn có trường hợp nào cần xử lý chuỗi hãy để lại bình luận cuối bài viết nhé, chúng ta sẽ cùng thảo luận.

Add Comment