Maison >développement back-end >Problème PHP >Comment convertir des caractères chinois en pinyin en php

Comment convertir des caractères chinois en pinyin en php

PHPz
PHPzoriginal
2023-04-24 10:51:513410parcourir

PHP est un langage de script côté serveur très populaire. Il présente les avantages de flexibilité, de vitesse et de sécurité, il est donc largement utilisé dans des domaines tels que le développement Web, les applications Internet et le développement de logiciels au niveau de l'entreprise. La conversion des caractères chinois en pinyin est une exigence courante, en particulier dans la recherche, le tri, le filtrage et d'autres scénarios chinois, ce qui peut améliorer l'expérience utilisateur et la précision de la récupération. Cet article explique comment utiliser PHP pour convertir les caractères chinois en pinyin.

1. Utilisez l'extension PHP

Il existe une extension appelée pinyin en PHP, grâce à laquelle vous pouvez facilement convertir les caractères chinois en pinyin. Tout d'abord, vous devez activer l'extension dans le fichier php.ini, rechercher la ligne suivante et la décommenter, enregistrer et redémarrer le service PHP :

extension=pinyin.so

Ensuite, vous pouvez appeler la fonction fournie par l'extension dans le code PHP pour implémenter le fonction de conversion des caractères chinois en pinyin. Par exemple, pour convertir la chaîne « Chine » en Pinyin, vous pouvez utiliser la fonction pinyin :

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

Il convient de noter que le résultat renvoyé par la fonction pinyin est une chaîne et que plusieurs pinyin sont séparés par des espaces. Si vous devez convertir tous les caractères chinois de la chaîne en pinyin, vous pouvez utiliser la fonction d'expression régulière de PHP pour la compléter.

2. Utilisez des bibliothèques tierces

En plus d'utiliser des extensions, vous pouvez également utiliser des bibliothèques tierces pour convertir les caractères chinois en pinyin. Parmi les bibliothèques les plus populaires figurent le pinyin, le overtrue-pinyin, etc. Ici, nous prenons la bibliothèque pinyin comme exemple pour expliquer comment l'utiliser pour convertir les caractères chinois en pinyin. La bibliothèque pinyin doit être installée via Composer :

composer require overtrue/pinyin

Après l'installation, utilisez le code suivant dans le code PHP pour réaliser la fonction de conversion des caractères chinois en Pinyin :

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

use Overtrue\Pinyin\Pinyin;

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

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

Dans le code ci-dessus, vous devez introduire le chargeur automatique Composer d'abord, puis créez une instance Pinyin. Vous pouvez utiliser la méthode convert fournie par la classe Pinyin pour convertir la chaîne en Pinyin, et enfin imprimer le résultat. Le résultat de sortie est :

Array
(
    [0] => zhong
    [1] => guo
)

Il convient de noter que la bibliothèque pinyin prend également en charge la conversion de mots multi-phonétiques en plusieurs pinyin. Par exemple, "Chongqing" sera converti en deux pinyin "chong" et "qing", vous en avez donc besoin. pour le faire lors de son utilisation.

3. Implémentez la conversion par vous-même

Enfin, si vous ne souhaitez pas utiliser d'extensions ou de bibliothèques tierces, vous pouvez également implémenter vous-même la fonction de conversion des caractères chinois en Pinyin. Ce qui suit fournit une méthode basée sur le codage Unicode. Tout d'abord, chaque caractère chinois de la chaîne doit être converti dans le jeu de codage Unicode correspondant, puis le pinyin correspondant à chaque caractère chinois est trouvé en interrogeant la table pinyin, puis épissé en une chaîne.

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”

Il convient de noter que cette implémentation peut avoir des problèmes de performances et ne convient qu'aux caractères chinois couramment utilisés. Si vous souhaitez implémenter une fonction de conversion de caractères chinois en pinyin plus efficace et plus complète, vous pouvez vous référer au code source de la bibliothèque pinyin ou à d'autres implémentations open source.

4. Résumé

Dans cet article, nous avons présenté trois méthodes de conversion des caractères chinois en pinyin : utiliser l'expansion PHP, utiliser des bibliothèques tierces et implémenter la conversion vous-même. Chaque méthode a ses avantages et ses inconvénients et peut être choisie en fonction des besoins réels. Quelle que soit la méthode utilisée, elle peut améliorer l'expérience et la précision dans la recherche, le tri et d'autres scénarios en chinois, et apporter une meilleure expérience aux utilisateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn