Tôi có một số chuỗi trong mã PHP của mình cần được cắt ngắn nếu chúng quá dài.Làm thế nào để cắt ngắn chuỗi UTF8 trong PHP?
Ví dụ, nếu một văn bản là một cái gì đó như thế này:
Xin chào, tôi muốn nói với bạn như thế nào tuyệt vời này là.
Nó sẽ thay thế nó với điều này:
Xin chào, tôi muốn ...
Cho rằng tôi đã thực hiện một đơn giản substr
. Vấn đề là trong UTF8 một số ký tự thực sự dài hai ký tự. Và tôi đã có một số vấn đề với một nhân vật bị cắt ở giữa: Ví dụ, khi tôi cố gắng chèn chuỗi sửa đổi trong cơ sở dữ liệu, nó bị treo.
Đây là chức năng hiện tại của tôi:
static function short($string, $max = 255){
if(strlen($string) >= $max){
$string = substr($string, 0, $max - 5).'...';
} return $string;
}
có ai biết một cách để làm cho công việc chức năng này ngay cả đối với các nhân vật UTF8?
Tại sao '$ max - 5'? – deceze
có thể xem tại địa chỉ 'https: //api.drupal.org/api/drupal/includes! Unicode.inc/function/truncate_utf8/7' –
có thể trùng lặp của [chức năng cắt tương thích UTF-8] (http: // stackoverflow .com/questions/6288875/utf-8-compatible-truncate-function) – user