Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memotong Rentetan Berbilang Bait Dengan Tepat Semasa Mengekalkan Sempadan Perkataan?
Memangkas Rentetan Berbilangbait dengan Ketepatan
Pengenalan
Memotong rentetan kepada panjang aksara tertentu ialah tugas biasa dalam pengaturcaraan. Walau bagaimanapun, apabila berurusan dengan rentetan multibait, yang mungkin mengandungi aksara dengan lebar yang berbeza-beza, ia menjadi lebih kompleks. Soalan ini menyelidiki nuansa memotong rentetan berbilangbait sambil mengekalkan sempadan perkataan.
Fungsi mb_strimwidth PHP
Seperti yang dicadangkan oleh jawapannya, PHP menyediakan fungsi yang mudah dipanggil mb_strimwidth( ) yang mengendalikan pemotongan rentetan berbilangbait. Ia memerlukan rentetan, lebar yang dikehendaki dan penamat pilihan sebagai hujah. Walau bagaimanapun, fungsi ini tidak mengambil kira sempadan perkataan.
Algoritma Pemangkasan Tersuai
Untuk mencapai pemangkasan sempadan perkataan, algoritma tersuai boleh digunakan:
function truncate($string, $chars = 50, $terminator = ' …') { // Calculate the maximum length considering the terminator $max_length = $chars - mb_strlen($terminator); // Short circuit for strings shorter than the maximum length if (mb_strlen($string) <= $max_length) { return $string; } // Find the last space character within the maximum length $last_space_index = mb_strrpos($string, ' ', $max_length); // Cut the string at the last space or at the maximum length if no last space is found $truncated_string = (false !== $last_space_index) ? mb_substr($string, 0, $last_space_index) : mb_strimwidth($string, 0, $chars); // Append the terminator $truncated_string .= $terminator; return $truncated_string; }
Fungsi ini melaksanakan langkah-langkah yang diterangkan dalam soalan:
Demonstrasi
Kod berikut menunjukkan penggunaan pemangkasan tersuai fungsi:
$in = "Answer to the Ultimate Question of Life, the Universe, and Everything."; $out = truncate($in, 50, ' …'); echo $out; // "Answer to the Ultimate Question of Life, the …"
Kesimpulan
Fungsi mb_strimwidth() PHP menyediakan cara yang mudah untuk memotong rentetan berbilangbait, tetapi ia tidak mengambil kira sempadan perkataan. Dengan melaksanakan algoritma tersuai, kami boleh mencapai pemangkasan yang lebih tepat yang memelihara integriti sempadan perkataan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memotong Rentetan Berbilang Bait Dengan Tepat Semasa Mengekalkan Sempadan Perkataan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!