Memangkas Rentetan dengan Aksara UTF-8
Masalah:
Memangkas rentetan berbilangbait kepada had aksara yang ditentukan sambil mengekalkan sempadan perkataan boleh menjadi cabaran dalam PHP. Isu ini melibatkan pencapaian fungsi ini dengan kaedah tersuai bernama truncate() yang harus berkelakuan konsisten dengan aksara berbilangbait.
Langkah-Langkah untuk Menyelesaikan:
Penyelesaian Menggunakan mb_strimwidth():
PHP menyediakan fungsi mb_strimwidth(), yang boleh mengendalikan pemotongan rentetan berbilangbait. Fungsi ini, bagaimanapun, tidak mematuhi sempadan perkataan. Coretan kod berikut menunjukkan penggunaannya:
public function truncate($string, $chars = 50, $terminator = ' …') { $maxChars = $chars - strlen($terminator); if (mb_strlen($string) <= $maxChars) { return $string; } $lastWhitespace = mb_strrpos(mb_substr($string, 0, $maxChars), ' '); if ($lastWhitespace !== false) { return mb_substr($string, 0, $lastWhitespace) . $terminator; } else { return mb_substr($string, 0, $maxChars) . $terminator; } }
Atas ialah kandungan terperinci Bagaimana untuk Memotong Tali UTF-8 dengan Selamat dalam PHP Sambil Memelihara Sempadan Perkataan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!