Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Hàm mb_strimwidth() trong PHP

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).