Aksara Cina adalah masalah biasa semasa pembangunan laman web. Dalam PHP, fungsi pemprosesan teks, seperti preg_replace, str_replace, dsb., boleh memproses aksara Cina secara normal. Walau bagaimanapun, dalam beberapa senario tertentu, kita perlu mengecualikan aksara Cina Contohnya, jika medan nama pengguna hanya dibenarkan mengandungi huruf dan nombor Inggeris, kita perlu mengecualikan aksara Cina.
Artikel ini akan memperkenalkan beberapa kaedah mengecualikan aksara Cina dalam PHP untuk rujukan pembaca.
Kaedah 1: Gunakan ungkapan biasa
Menggunakan ungkapan biasa boleh mengecualikan aksara Cina dengan lebih mudah. Berikut ialah contoh kod:
function excludeChinese($str) { return preg_replace("/[\x7f-\xff]+/", '', $str); } $name = "张三"; $name = excludeChinese($name); echo $name; //输出为空
Dalam kod di atas, fungsi preg_replace digunakan untuk menggantikan aksara Cina dalam rentetan dengan rentetan kosong untuk mengecualikan aksara Cina. [x7f-xff] bermaksud memadankan semua aksara Cina dalam jadual kod ASCII.
Memandangkan pengekodan aksara Cina tidak unik, kaedah ini tidak sempurna. Dalam sesetengah kes, kaedah lain untuk mengecualikan aksara Cina mungkin diperlukan.
Kaedah 2: Gunakan fungsi mb_check_encoding
Aksara Cina juga boleh dikecualikan dengan menggunakan fungsi mb_check_encoding. Berikut ialah contoh kod:
function excludeChinese($str) { $len = mb_strlen($str); for ($i=0; $i<$len; $i++) { $char = mb_substr($str, $i, 1); if (!mb_check_encoding($char, 'ASCII')) { return ''; } } return $str; } $name = "张三"; $name = excludeChinese($name); echo $name; //输出为空
Kod di atas menggunakan fungsi mb_check_encoding untuk mengesan sama ada setiap aksara dalam rentetan ialah aksara ASCII Jika tidak, rentetan kosong dikembalikan untuk mengecualikan aksara Cina.
Kaedah 3: Gunakan fungsi iconv
Cara lain untuk mengecualikan aksara Cina ialah menggunakan fungsi iconv. Berikut ialah contoh kod:
function excludeChinese($str) { $str = iconv("UTF-8", "ASCII//IGNORE", $str); return $str; } $name = "张三"; $name = excludeChinese($name); echo $name; //输出空字符串
Dalam kod di atas, pengekodan rentetan mula-mula ditukar daripada pengekodan UTF-8 kepada ASCII, kemudian aksara Cina diabaikan melalui parameter IGNORE, dan akhirnya rentetan hasil dikembalikan.
Kesimpulan
Kaedah di atas semuanya boleh mencapai pengecualian aksara Cina, dan kaedah khusus boleh dipilih mengikut keperluan. Sudah tentu, kaedah yang berbeza mungkin diperlukan dalam senario yang berbeza. Dalam pembangunan sebenar, adalah yang terbaik untuk membuat pilihan berdasarkan syarat aplikasi tertentu.
Atas ialah kandungan terperinci Bagaimana untuk mengecualikan aksara Cina dalam php (tiga kaedah). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!