Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menukar aksara Cina kepada pinyin dalam php

Bagaimana untuk menukar aksara Cina kepada pinyin dalam php

PHPz
Lepaskan: 2023-04-24 14:02:04
asal
3419 orang telah melayarinya

PHP ialah bahasa skrip sebelah pelayan yang sangat popular Ia mempunyai kelebihan fleksibiliti, kelajuan dan keselamatan, jadi ia digunakan secara meluas dalam bidang seperti pembangunan Web, aplikasi Internet dan pembangunan perisian peringkat perusahaan. Menukar aksara Cina kepada pinyin ialah keperluan biasa, terutamanya dalam carian Cina, pengisihan, penapisan dan senario lain, yang boleh meningkatkan pengalaman pengguna dan ketepatan pengambilan semula. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menukar aksara Cina kepada pinyin.

1. Gunakan sambungan PHP

Terdapat sambungan yang dipanggil pinyin dalam PHP, yang melaluinya anda boleh menukar aksara Cina kepada pinyin dengan mudah. Pertama, anda perlu mendayakan sambungan dalam fail php.ini, cari baris berikut dan nyahkomennya, simpan dan mulakan semula perkhidmatan PHP:

extension=pinyin.so
Salin selepas log masuk

Kemudian anda boleh memanggil fungsi yang disediakan oleh sambungan dalam kod PHP untuk menukar fungsi Pinyin aksara Cina. Contohnya, untuk menukar rentetan "China" kepada Pinyin, anda boleh menggunakan fungsi pinyin:

$py = pinyin('中国'); // 返回结果为“zhong guo”
Salin selepas log masuk

Perlu diambil perhatian bahawa hasil pulangan fungsi pinyin ialah rentetan dan berbilang pinyin dipisahkan dengan ruang terbuka. Jika anda perlu menukar semua aksara Cina dalam rentetan kepada pinyin, anda boleh menggunakan fungsi ungkapan biasa PHP untuk melengkapkannya.

2. Gunakan perpustakaan pihak ketiga

Selain menggunakan sambungan, anda juga boleh menggunakan perpustakaan pihak ketiga untuk menukar aksara Cina kepada pinyin. Antara perpustakaan yang lebih popular ialah pinyin, overtrue-pinyin, dsb. Di sini kami mengambil pustaka pinyin sebagai contoh untuk menerangkan cara menggunakannya untuk menukar aksara Cina kepada Pinyin. Pustaka pinyin perlu dipasang melalui Komposer:

composer require overtrue/pinyin
Salin selepas log masuk

Selepas pemasangan, gunakan kod berikut dalam kod PHP untuk merealisasikan fungsi menukar aksara Cina kepada pinyin:

require_once "vendor/autoload.php"; // 引入Composer自动加载器

use Overtrue\Pinyin\Pinyin;

$pinyin = new Pinyin(); // 创建Pinyin实例

$string = '中国'; // 待转换的字符串
$result = $pinyin->convert($string); // 转换
var_dump($result); // 输出转换结果
Salin selepas log masuk

Dalam kod di atas, anda perlu memperkenalkan pemuat auto Komposer terlebih dahulu, dan kemudian buat tika Pinyin. Anda boleh menggunakan kaedah tukar yang disediakan oleh kelas Pinyin untuk menukar rentetan kepada Pinyin, dan akhirnya mencetak hasilnya. Hasil output ialah:

Array
(
    [0] => zhong
    [1] => guo
)
Salin selepas log masuk

Perlu diingatkan bahawa perpustakaan pinyin juga menyokong penukaran perkataan berbilang fonetik kepada berbilang pinyin Contohnya, "Chongqing" akan ditukar kepada dua pinyin "chong" dan ". qing". Oleh itu, ia perlu diproses apabila menggunakannya.

3. Laksanakan penukaran sendiri

Akhir sekali, jika anda tidak mahu menggunakan sambungan atau perpustakaan pihak ketiga, anda juga boleh melaksanakan fungsi menukar aksara Cina kepada Pinyin sendiri. Berikut menyediakan kaedah berdasarkan pengekodan Unicode. Mula-mula, setiap aksara Cina dalam rentetan perlu ditukar kepada set pengekodan Unicode yang sepadan, dan kemudian pinyin yang sepadan dengan setiap aksara Cina ditemui dengan menanyakan jadual pinyin, dan kemudian disambung menjadi rentetan.

function split_unicode_chrs($str) { // 将字符串转换成Unicode编码集合
    preg_match_all('/./u', $str, $matches);
    return $matches[0];
}

function get_pinyin($chr) { // 查询拼音表,返回汉字对应的拼音
    $table = array(
        '\u554a' => 'a', // 注意转义
        '\u963f' => 'a',
        // 其他汉字及拼音...
    );
    return isset($table[$chr]) ? $table[$chr] : false;
}

function str2pinyin($str) { // 将汉字字符串转成拼音
    $unicode_chrs = split_unicode_chrs($str);
    $result = array();
    foreach ($unicode_chrs as $chr) {
        $pinyin = get_pinyin(json_encode($chr));
        if ($pinyin) {
            $result[] = $pinyin;
        }
    }
    return implode(' ', $result);
}

$str = '中国';
$pinyin = str2pinyin($str);
echo $pinyin; // 输出“zhong guo”
Salin selepas log masuk

Perlu diambil perhatian bahawa pelaksanaan ini mungkin mempunyai masalah prestasi dan hanya terpakai kepada aksara Cina yang biasa digunakan. Jika anda ingin melaksanakan fungsi penukaran aksara Cina yang lebih cekap dan komprehensif kepada pinyin, anda boleh merujuk kepada kod sumber pustaka pinyin atau pelaksanaan sumber terbuka yang lain.

4. Ringkasan

Dalam artikel ini, kami memperkenalkan tiga kaedah untuk menukar aksara Cina kepada pinyin: menggunakan pengembangan PHP, menggunakan perpustakaan pihak ketiga dan melaksanakan penukaran itu sendiri. Setiap kaedah mempunyai kelebihan dan kekurangan dan boleh dipilih mengikut keperluan sebenar. Tidak kira kaedah yang digunakan, pengalaman dan ketepatan dalam carian Cina, pengisihan dan senario lain boleh dipertingkatkan, memberikan pengguna pengalaman yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk menukar aksara Cina kepada pinyin dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan