Bài viết đăng tại: https://laptrinhcanban.com
Hướng dẫn cách cắt chuỗi trong PHP. Bạn sẽ học được cách sử dụng các hàm có sẵn để cắt chuỗi trong PHP sau bài học này.
Có 2 phương pháp cắt chuỗi trong PHP như sau:
- Cắt chuỗi thông thường bằng hàm substr
- Cắt chuỗi chứa các ký tự Unicode như tiếng Việt có dấu bằng hàm mb_substr
Cắt chuỗi trong PHP bằng hàm substr
substr trong PHP là một hàm xử lý chuỗi có tác dụng cắt chuỗi con từ chuỗi ban đầu và tạo ra chuỗi mới. Phép cắt này không làm thay đổi chuỗi ban đầu.
Cú pháp hàm substr để cắt chuỗi trong PHP như sau:
substr ( $str , $start [, $length ] );
Trong đó:
str
là chuỗi nguồn$start
là vị trí bắt đầu cắt chuỗi từ chuỗi nguồn$length
là độ dài phạm vi cắt, tính từ $start. Độ dài này được tính theo đơn vị byte. Đối số này có thể được lược bỏ và khi đó sẽ cắt cho tới cuối chuỗi.
Ví dụ cụ thể:
$str = "abcde"; |
Trong ví dụ trên, chúng ta chỉ định cắt từ vị trí ký tự có index bằng 1 (ký tự b), và lược bỏ đối số $length
, do đó hàm đã cắt từ b cho đến cuối chuỗi ban đầu.
Bây giờ hãy thử chỉ định cả độ dài phạm vi cắt với $length
:
$str = "abcde"; |
Khi đó, hàm sẽ cắt từ vị trí ký tự b về đằng sau thêm 3 byte, và do các ký tự thông thường có độ dài 1 bye, nên đã trả về 3 ký tự trong chuỗi bcd
như trên.
Tuy nhiên cần lưu ý, nếu trong chuỗi có chứa ký tự 2 byte, ví dụ tiếng Việt có dấu hoặc hán tự tiếng Trung tiếng Nhật thì kết quả sẽ khác đi:
$str = "chào"; |
Do ký tự à
có độ dài 2 byte, nên kết quả mặc dù chỉ định $length
bằng 3 nhưng chỉ có 2 ký tự được cắt ra mà thôi.
Trong trường hợp muốn cắt chuỗi chứa các ký tự dài hơn 1 byte như vậy, hãy dùng tới hàm mb_substr để thay thế như sau.
Cắt chuỗi trong PHP chứa tiếng Nhật, tiếng Việt có dấu bằng hàm mb_substr
Tương tự như hàm substr thì mb_substr trong PHP là một hàm xử lý chuỗi có tác dụng cắt chuỗi con từ chuỗi ban đầu và tạo ra chuỗi mới. Phép cắt này không làm thay đổi chuỗi ban đầu.
Tuy nhiên điểm khác biệt của hàm mb_substr so với hàm substr đó là chúng ta có thể chỉ định mã ký tự (encoding) sử dụng khi xử lý chuỗi, qua đó có thể lấy chính xác số ký tự muốn cắt từ chuỗi ban đầu.
Cú pháp hàm mb_substr để cắt chuỗi kèm mã ký tự trong PHP như sau:
mb_substr( $str , $start [, $length , $encoding] );
Trong đó:
str
là chuỗi nguồn- ‘$start’ là vị trí bắt đầu cắt chuỗi từ chuỗi nguồn
$length
là độ dài phạm vi cắt, tính từ $start. Độ dài này được tính theo đơn vị byte. Đối số này có thể được lược bỏ và khi đó sẽ cắt cho tới cuối chuỗi.$encoding
là mã ký tự sử dụng để xử lý chuỗi. Nếu lược bỏ hoặc chỉ định$encoding = null
thì mã mặc định sẽ được dùng.
Về cơ bản thì hàm mb_substr cũng trả về kết quả tương tự hàm substr:
Ví dụ cụ thể:
$str = "abcde"; |
Tuy nhiên khi trong chuỗi chứa tiếng Việt có dấu, hán tự tiếng Trung hay kanji tiếng Nhật mà bạn muốn cắt chính xác số ký tự chỉ định, thì hàm mb_substr sẽ phát huy tác dụng của nó.
Ví dụ:
$str = "chào"; |
Có thể thấy rõ trong kết quả thì hàm mb_substr sẽ cắt chính xác số lượng ký tự đã chỉ định.
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn cách tính cắt chuỗi trong PHP bằng hàm substr và mb_substr rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về PHP trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/cat-chuoi-trong-php/
HOME › hướng dẫn học lập trình php cho người mới bắt đầu>>07. chuỗi trong php