Hàm mb_strimwidth() cắt ngắn (truncate) chuỗi theo chiều rộng (width) chỉ định, tính bằng character width (không phải byte). Hữu ích cho hiển thị UI giới hạn độ rộng.
Cú pháp
string mb_strimwidth(
string $string,
int $start,
int $width,
string $trim_marker = "",
string $encoding = null
)
Tham số
| Tham số | Mô tả |
|---|---|
$string |
Chuỗi gốc. |
$start |
Vị trí bắt đầu cắt (character index, 0-based). |
$width |
Chiều rộng mong muốn (số character width). Nếu âm: tính từ cuối chuỗi. |
$trim_marker |
Chuỗi append vào cuối khi bị cắt (ví dụ: "..."). Độ rộng marker tính vào $width. |
$encoding |
Encoding ký tự. Null = internal encoding. |
Giá trị trả về
Chuỗi đã cắt. Nếu có trim_marker, ký tự cuối được thay thế để fit width.
Ví dụ
<?php
mb_internal_encoding("UTF-8");
// Cắt "Simply Easy Learning!" từ char 2, width 15, thêm "..."
$result = mb_strimwidth("Simply Easy Learning!", 2, 15, "...");
echo $result; // Output: "mply Easy Le..."
?>
Kết quả
mply Easy Le...
Giải thích: Bỏ qua 2 char đầu ("Si"), lấy 15 char width tiếp theo. "mply Easy Learni" (15 char) + "..." → nhưng "..." tính width nên cắt bớt 3 char cuối → "mply Easy Le...".
Character Width
- ASCII/half-width: width = 1.
- CJK (Chinese/Japanese/Korean) full-width: width = 2.
- Combining characters: width = 0.
- Xác định bởi
mb_strwidth().
Lưu ý
- Cần extension
mbstring. - Khác
mb_strcut()(cắt theo byte) vàmb_substr()(cắt theo character count, không tính width).