Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencapai pemintasan bahasa Cina tanpa aksara yang bercelaru dalam PHP

Bagaimana untuk mencapai pemintasan bahasa Cina tanpa aksara yang bercelaru dalam PHP

PHPz
PHPzasal
2023-03-31 09:06:151132semak imbas

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.

  1. Gunakan fungsi substr() untuk memintas rentetan Cina

$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.

  1. Gunakan fungsi mb_substr() untuk memintas rentetan Cina

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:

  1. Tukarkan Rentetan Cina kepada pengekodan UTF-8

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.

  1. Gunakan fungsi mb_substr() untuk memintas rentetan

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!

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