Hàm strlen() trong PHP
Trần Thị Vân
- 1144
- 26/07/2025
Chức năng của Hàm strlen() trong PHP
Hàm strlen() trong PHP dùng để tính độ dài của chuỗi bằng byte chứ không phải tính tổng số ký tự.
Cú pháp của Hàm strlen() trong PHP
$số_byte = strlen($chuỗi_gốc);
$chuỗi_gốc: Biến chuỗi gốc cần kiểm tra số byte.
$số_byte: Trả về kết quả là biến chứa số byte.
Ví dụ Hàm strlen() trong PHP
<?php
$chuoigoc = "Web Mới";
echo strlen($chuoigoc); // Kết quả: 9
echo "<br>";
$chuoigoc1 = "học"; // Kết quả: 5
echo strlen($chuoigoc1);
?>
strlen() xử lý chuỗi tiếng Việt như thế nào?
Khi làm việc với chuỗi tiếng Việt, strlen() có thể cho kết quả khác với số ký tự mà người dùng nhìn thấy. Nguyên nhân là hàm này tính số byte của chuỗi, không phải số ký tự theo cách đọc thông thường.
Vì sao strlen() trả về số byte thay vì số ký tự?
PHP xử lý chuỗi dưới dạng một dãy byte. Với chuỗi chỉ chứa các ký tự ASCII như chữ cái tiếng Anh hoặc chữ số, mỗi ký tự thường tương ứng với một byte nên kết quả của strlen() dễ trùng với số ký tự.
Trong khi đó, các ký tự tiếng Việt khi được lưu bằng UTF-8 thường cần nhiều byte. Vì vậy, một chuỗi có ít ký tự vẫn có thể có độ dài byte lớn hơn đáng kể.
<?php
$text = "Tiếng Việt";
echo strlen($text);
?>
Ở ví dụ trên, kết quả của strlen() không nên được hiểu đơn giản là số chữ cái trong chuỗi. Nếu mục đích là kiểm tra độ dài nội dung mà người dùng nhìn thấy, cần lựa chọn cách xử lý phù hợp với Unicode thay vì chỉ dựa vào hàm này.
Cách đếm ký tự tiếng Việt chính xác trong PHP
Đối với chuỗi UTF-8, mb_strlen() thường phù hợp hơn khi cần đếm số ký tự. Hàm này hiểu chuỗi theo bảng mã được chỉ định nên có thể xử lý tiếng Việt đúng với nhu cầu kiểm tra độ dài văn bản.
<?php
$text = "Tiếng Việt";
echo mb_strlen($text, "UTF-8");
?>
Có thể hiểu đơn giản: strlen() phù hợp khi cần biết kích thước chuỗi theo byte, còn mb_strlen() phù hợp hơn khi cần xác định số ký tự của nội dung Unicode như tiếng Việt. Việc chọn đúng hàm sẽ giúp tránh sai lệch khi giới hạn độ dài tiêu đề, tên người dùng hoặc nội dung nhập từ biểu mẫu.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm strlen() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *