PHP ialah bahasa pengaturcaraan sebelah pelayan yang popular yang digunakan secara meluas dalam pembangunan aplikasi web. Dalam aplikasi web, kita selalunya perlu memintas rentetan tanpa memusnahkan aksara Cina. Walau bagaimanapun, kaedah pemintasan rentetan PHP tradisional sering menyebabkan masalah seperti aksara Cina yang kacau-bilau Artikel ini akan memperkenalkan cara untuk mencapai pemintasan bahasa Cina tanpa aksara yang kacau melalui PHP.
1. Masalah dengan kaedah pemintasan tradisional
Dalam PHP, terdapat banyak kaedah untuk memintas rentetan, yang biasa termasuk substr(), mb_substr(), iconv_substr(), dsb. Walau bagaimanapun, apabila kaedah ini memintas rentetan Cina, masalah sering berlaku, seperti aksara Cina bercelaru atau pemintasan yang tidak tepat. Mari lihat beberapa contoh di bawah.
$str = "Saya suka pengaturcaraan, pengaturcaraan membuatkan saya gembira!";
$substr = substr($str, 0, 6);
echo $substr;
?>
Kod di atas akan mengeluarkan "Saya suka pengaturcaraan" tanpa aksara Cina yang kacau. soalan. Walau bagaimanapun, jika kita cuba memintas aksara Cina "pengaturcaraan", akan ada masalah menggunakan fungsi substr():
$str = "Saya suka pengaturcaraan, pengaturcaraan membuatkan saya gembira! ";
$substr = substr($str, 3, 6);
echo $substr;
?>
Kod di atas akan mengeluarkan "program, programming", aksara Cina "pengaturcaraan" "Ia telah dipotong. Keputusan ini jelas bukan yang kita mahukan.
Fungsi mb_substr() ialah fungsi pemintasan rentetan terbina dalam PHP. Ia menyokong aksara berbilang bait dan boleh mengelakkan masalah bercelaru watak Cina. Mari kita lihat penggunaan asas fungsi mb_substr():
$str = "Saya suka pengaturcaraan, pengaturcaraan membuatkan saya gembira!";
$substr = mb_substr($ str, 0, 6, 'utf-8');
echo $substr;
?>
Kod di atas akan mengeluarkan "Saya suka pengaturcaraan", dan akan ada tiada masalah aksara Cina yang bercelaru. Walau bagaimanapun, jika kita cuba memintas aksara Cina "pengaturcaraan", menggunakan fungsi mb_substr() juga akan menyebabkan masalah:
$str = "Saya suka pengaturcaraan, pengaturcaraan membuatkan saya gembira! ";
$substr = mb_substr($str, 3, 6, 'utf-8');
echo $substr;
?>
Kod di atas akan mengeluarkan "cheng ", Aksara Cina "pengaturcaraan" dipotong.
2. Penyelesaian
Memandangkan masalah kaedah pemintasan tradisional, kita boleh menggunakan kaedah berikut untuk mencapai pemintasan bahasa Cina tanpa aksara yang kacau:
Dalam PHP, kita boleh menggunakan fungsi mb_convert_encoding() untuk menukar rentetan Cina kepada pengekodan UTF-8. UTF-8 ialah pengekodan aksara Unicode panjang boleh ubah yang boleh mewakili hampir semua aksara di dunia, termasuk aksara Cina. Mula-mula kita boleh menukar rentetan Cina kepada pengekodan UTF-8, supaya aksara Cina boleh diproses dengan betul apabila memintas rentetan. Berikut ialah contoh:
$str = "Saya suka pengaturcaraan, pengaturcaraan membuatkan saya gembira!";
$str = mb_convert_encoding($str, 'UTF-8', 'auto');
echo $str;
?>
Kod di atas akan menukar rentetan $str kepada output yang dikodkan UTF-8.
Selepas menukar rentetan Cina kepada pengekodan UTF-8, kita boleh menggunakan fungsi mb_substr() untuk memintas rentetan . Penggunaan fungsi mb_substr() adalah sama seperti yang diterangkan sebelum ini, dan anda perlu menentukan parameter seperti rentetan, kedudukan permulaan, panjang dan kaedah pengekodan. Berikut ialah contoh:
$str = "Saya suka pengaturcaraan, pengaturcaraan membuatkan saya gembira!";
$str = mb_convert_encoding($str, 'UTF-8', 'auto');
$substr = mb_substr($str, 3, 6, 'utf-8');
echo $substr;
?>
Kod di atas akan Output "pengaturcaraan", aksara Cina dipintas dengan betul.
3. Ringkasan
Pemintasan rentetan Cina sentiasa menjadi masalah yang menyusahkan Kaedah pemintasan rentetan PHP sering mengakibatkan aksara Cina bercelaru atau pemintasan yang tidak tepat. Dengan menukar rentetan Cina kepada pengekodan UTF-8, kita boleh menggunakan fungsi mb_substr() untuk memintas rentetan, dengan itu menyelesaikan masalah pemintasan bahasa Cina tanpa aksara yang bercelaru.
Atas ialah kandungan terperinci Bagaimana untuk mencapai pemintasan bahasa Cina tanpa aksara yang bercelaru dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!