Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie chinesische Schriftzeichen in PHP in Pinyin

So konvertieren Sie chinesische Schriftzeichen in PHP in Pinyin

PHPz
Freigeben: 2023-04-24 14:02:04
Original
3412 Leute haben es durchsucht

PHP ist eine sehr beliebte serverseitige Skriptsprache. Sie bietet die Vorteile von Flexibilität, Geschwindigkeit und Sicherheit und wird daher häufig in Bereichen wie Webentwicklung, Internetanwendungen und Softwareentwicklung auf Unternehmensebene verwendet. Die Konvertierung chinesischer Schriftzeichen in Pinyin ist eine häufige Anforderung, insbesondere bei chinesischen Such-, Sortier-, Filter- und anderen Szenarien, die das Benutzererlebnis und die Abrufgenauigkeit verbessern können. In diesem Artikel wird erläutert, wie Sie mit PHP chinesische Schriftzeichen in Pinyin konvertieren.

1. PHP-Erweiterung verwenden

In PHP gibt es eine Erweiterung namens Pinyin, mit der Sie chinesische Schriftzeichen einfach in Pinyin umwandeln können. Zuerst müssen Sie die Erweiterung in der Datei php.ini aktivieren, die folgende Zeile finden und auskommentieren, den PHP-Dienst speichern und neu starten:

extension=pinyin.so
Nach dem Login kopieren

Dann können Sie die von der Erweiterung bereitgestellte Funktion aufrufen Der PHP-Code zum Konvertieren chinesischer Zeichen mit der Pinyin-Funktion. Um beispielsweise die Zeichenfolge „China“ in Pinyin umzuwandeln, können Sie die Pinyin-Funktion verwenden:

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

Es ist zu beachten, dass das Rückgabeergebnis der Pinyin-Funktion eine Zeichenfolge ist und mehrere Pinyin getrennt werden durch Leerzeichen geöffnet. Wenn Sie alle chinesischen Zeichen in der Zeichenfolge in Pinyin konvertieren müssen, können Sie dies mit der regulären Ausdrucksfunktion von PHP vervollständigen.

2. Bibliotheken von Drittanbietern verwenden

Zusätzlich zur Verwendung von Erweiterungen können Sie auch Bibliotheken von Drittanbietern verwenden, um chinesische Schriftzeichen in Pinyin umzuwandeln. Zu den bekannteren Bibliotheken gehören Pinyin, Overtrue-Pinyin usw. Hier nehmen wir die Pinyin-Bibliothek als Beispiel, um zu erklären, wie man damit die Funktion der Konvertierung chinesischer Schriftzeichen in Pinyin realisiert. Die Pinyin-Bibliothek muss über Composer installiert werden:

composer require overtrue/pinyin
Nach dem Login kopieren

Verwenden Sie nach der Installation den folgenden Code im PHP-Code, um die Funktion der Konvertierung chinesischer Schriftzeichen in Pinyin zu realisieren:

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

use Overtrue\Pinyin\Pinyin;

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

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

Im obigen Code müssen Sie zuerst den Composer-Autoloader einführen und dann eine Pinyin-Instanz erstellen. Sie können die von der Pinyin-Klasse bereitgestellte Konvertierungsmethode verwenden, um die Zeichenfolge in Pinyin zu konvertieren und schließlich das Ergebnis auszudrucken. Das Ausgabeergebnis lautet:

Array
(
    [0] => zhong
    [1] => guo
)
Nach dem Login kopieren

Es ist zu beachten, dass die Pinyin-Bibliothek auch die Konvertierung polyphoner Wörter in mehrere Pinyin unterstützt. Beispielsweise wird „Chongqing“ in zwei Pinyin-Wörter „chong“ und „qing“ umgewandelt. Daher muss es bei der Verwendung verarbeitet werden.

3. Implementieren Sie die Konvertierung selbst.

Wenn Sie schließlich keine Erweiterungen oder Bibliotheken von Drittanbietern verwenden möchten, können Sie auch die Funktion zum Konvertieren chinesischer Zeichen implementieren zu Pinyin selbst. Im Folgenden wird eine Methode bereitgestellt, die auf der Unicode-Codierung basiert. Zuerst muss jedes chinesische Zeichen in der Zeichenfolge in den entsprechenden Unicode-Codierungssatz konvertiert werden. Anschließend wird das Pinyin, das jedem chinesischen Zeichen entspricht, durch Abfragen der Pinyin-Tabelle gefunden und dann in eine Zeichenfolge gespleißt.

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”
Nach dem Login kopieren

Es ist zu beachten, dass diese Implementierung möglicherweise Leistungsprobleme aufweist und nur auf häufig verwendete chinesische Schriftzeichen anwendbar ist. Wenn Sie eine effizientere und umfassendere Konvertierungsfunktion für chinesische Zeichen in Pinyin implementieren möchten, können Sie auf den Quellcode der Pinyin-Bibliothek oder andere Open-Source-Implementierungen verweisen.

4. Zusammenfassung

In diesem Artikel stellen wir drei Methoden zur Konvertierung chinesischer Schriftzeichen in Pinyin vor: Verwendung der PHP-Erweiterung, Verwendung von Bibliotheken von Drittanbietern und Implementierung der Konvertierung selbst. Jede Methode hat ihre Vor- und Nachteile und kann je nach tatsächlichem Bedarf ausgewählt werden. Unabhängig davon, welche Methode verwendet wird, kann sie die Erfahrung und Genauigkeit bei der chinesischen Suche, Sortierung und anderen Szenarien verbessern und den Benutzern ein besseres Erlebnis bieten.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie chinesische Schriftzeichen in PHP in Pinyin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage