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

Hàm grapheme_strlen() trong PHP

Grapheme (grapheme cluster)** là đơn vị chức năng nhỏ nhất của hệ thống viết. Có thể hiểu là đơn vị viết nhỏ nhất tương ứng với âm thanh.

Hàm grapheme_strlen() trong PHP dùng để lấy độ dài chuỗi tính theo đơn vị grapheme. Hàm này không trả về độ dài byte hay ký tự (character). Hỗ trợ từ PHP 5.3.0+.

Cú pháp

int grapheme_strlen(string $str_string)

Tham số

  • $str_string – Chuỗi cần đo độ dài. Bắt buộc phải dùng encoding UTF-8.

Giá trị trả về

Trả về độ dài grapheme nếu thành công, false nếu thất bại.

Ví dụ

<?php
// Chuỗi: "abca" + COMBINING DIAERESIS (U+0308) + "o" + COMBINING RING ABOVE (U+030A) + "a" + COMBINING DIAERESIS + "\x122"
$str = "abca\xCC\x8Ao\xCC\x88a\xCC\x8A\x122";
$len = grapheme_strlen($str);
var_dump($len);
?>

Kết quả

int(8)

Giải thích

Chuỗi trên có 8 grapheme cluster: a, b, c, ä (a + combining diaeresis), o̊ (o + combining ring), å (a + combining ring), \x12, 2. Hàm strlen() thường sẽ trả về số byte lớn hơn do multi-byte UTF-8.

Lưu ý

  • Cần extension intl (ICU library) được bật.
  • Chuỗi phải là UTF-8 hợp lệ, kết quả mới chính xác.
  • Hàm liên quan: grapheme_substr(), grapheme_strpos(), grapheme_strripos().