Memangkas Rentetan dalam PHP kepada Perkataan Terdekat
Untuk memangkas rentetan di hujung perkataan terakhir sebelum kiraan aksara yang ditentukan, PHP menyediakan beberapa kaedah.
Menggunakan wordwrap Fungsi:
Fungsi wordwrap membahagikan teks kepada berbilang baris dengan lebar maksimum, secara automatik melanggar sempadan perkataan. Dengan hanya mengambil baris pertama, anda boleh memotong teks kepada perkataan terdekat:
$truncated_string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n"));
Pengendalian Kes Tepi:
Kaedah ini tidak mengendalikan teks yang lebih pendek daripada lebar yang dikehendaki. Untuk itu, gunakan yang berikut:
if (strlen($string) > $desired_width) { $string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n")); }
Pemotongan Token:
Untuk menyelesaikan isu yang berpotensi dengan baris baharu dalam teks, kaedah ini membahagikan teks kepada token (perkataan , ruang putih dan baris baharu) dan mengumpul panjangnya:
function tokenTruncate($string, $desired_width) { $parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE); $length = 0; $last_part = 0; for (; $last_part < count($parts); ++$last_part) { $length += strlen($parts[$last_part]); if ($length > $desired_width) { break; } } return implode(array_slice($parts, 0, $last_part)); }
Kaedah ini juga mengendalikan UTF8 aksara.
Ujian Unit:
class TokenTruncateTest extends PHPUnit_Framework_TestCase { // ... test cases ... }
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memotong Rentetan dalam PHP kepada Perkataan Terdekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!