Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memotong Rentetan dalam PHP kepada Perkataan Terdekat?

Bagaimanakah Saya Boleh Memotong Rentetan dalam PHP kepada Perkataan Terdekat?

Linda Hamilton
Linda Hamiltonasal
2024-12-23 14:44:13533semak imbas

How Can I Truncate Strings in PHP to the Nearest Word?

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:

  • Kaedah ini bergantung pada sempadan perkataan .
  • Mengendalikan aksara khas seperti emoji atau bahasa lain mungkin memerlukan tambahan pertimbangan.

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!

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