Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memotong Tali UTF-8 dengan Selamat dalam PHP Sambil Memelihara Sempadan Perkataan?

Bagaimana untuk Memotong Tali UTF-8 dengan Selamat dalam PHP Sambil Memelihara Sempadan Perkataan?

Mary-Kate Olsen
Lepaskan: 2024-12-18 16:23:11
asal
368 orang telah melayarinya

How to Safely Truncate UTF-8 Strings in PHP While Preserving Word Boundaries?

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:

  1. Tentukan maksimum panjang aksara dengan menolak panjang rentetan penamatan daripada maksimum yang dikehendaki panjang.
  2. Pastikan panjang rentetan melebihi panjang maksimum; kembalikannya tidak berubah jika tidak.
  3. Kenal pasti aksara ruang putih terakhir di bawah panjang maksimum untuk mewujudkan sempadan perkataan.
  4. Potong rentetan pada ruang putih terakhir atau panjang maksimum jika tiada ruang putih wujud.
  5. Tambah rentetan penamatan pada rentetan terpenggal.
  6. Kembalikan rentetan yang diubah suai rentetan.

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;
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan