Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memotong Rentetan Berbilang Bait Semasa Mengekalkan Sempadan Perkataan dalam PHP?

Bagaimanakah Saya Boleh Memotong Rentetan Berbilang Bait Semasa Mengekalkan Sempadan Perkataan dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 17:02:18307semak imbas

How Can I Truncate Multibyte Strings While Preserving Word Boundaries in PHP?

Memangkas Rentetan Berbilangbait dengan Kawalan Sempadan Kata

Apabila bekerja dengan rentetan berbilangbait, memotongnya kepada kiraan aksara tertentu boleh menjadi tugas yang mencabar , terutamanya apabila mempertimbangkan sempadan perkataan. Satu cara biasa untuk menangani perkara ini ialah menggunakan fungsi rentetan berbilangbait yang disediakan oleh PHP.

Satu pendekatan melibatkan penggunaan langkah berikut:

  1. Tolak panjang rentetan terminator daripada yang dikehendaki panjang terpotong.
  2. Tentukan jika rentetan melebihi had yang dikira.
  3. Kenal pasti aksara ruang terakhir dalam rentetan dalam had yang dikira.
  4. Potong rentetan sama ada pada ruang terakhir atau pada had yang dikira.
  5. Tambahkan rentetan penamat pada bahagian yang dipotong.

Walaupun pendekatan ini nampak logik, melaksanakannya menggunakan fungsi str atau mb_ boleh menjadi rumit. Sebagai alternatif, PHP menawarkan fungsi terbina dalam yang melaksanakan pemangkasan berbilangbait: mb_strimwidth.

<?php
$string = "Answer to the Ultimate Question of Life, the Universe, and Everything";
$maxLength = 50;
$terminator = ' …';
$truncatedString = mb_strimwidth($string, 0, $maxLength - strlen($terminator), $terminator);

echo $truncatedString; // Output: "Answer to the Ultimate Question of Life, the …"
?>

Walaupun mb_strimwidth tidak mengambil kira sempadan perkataan, ia menyediakan kaedah yang boleh dipercayai dan mudah untuk memotong rentetan berbilangbait.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memotong Rentetan Berbilang Bait Semasa Mengekalkan Sempadan Perkataan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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