mozillazg/병음 데이터 사전을 기반으로 한 중국어-병음 변환 도구로, 중국어 문자를 다중 음성 문자를 지원하는 병음으로 변환하는 보다 정확한 솔루션입니다.
내 프로젝트처럼요? 저를 지원하려면 여기를 클릭하세요
Composer를 사용하여 설치:
composer require overtrue/pinyin:^5.0
첫 번째 문자를 가져오는 방법을 제외하고 모든 방법은 병음 형식을 지정하는 데 사용되는 두 번째 매개변수를 지원합니다. 선택적 값은 다음과 같습니다.
symbol
(기본값) 톤 기호(예: pīn yīn
none
pin yin
같은 병음을 출력하지 않습니다.pin1 yin1
과 같이 number
끝에 있는 숫자 패턴의 병음 문자열을 반환하는 permalink
를 제외하고 다른 모든 메서드는 컬렉션 유형 OvertruePinyinCollection
반환합니다.
use Overtrue Pinyin Pinyin ;
$ pinyin = Pinyin:: sentence ( '你好,世界' );
다음을 통해 컬렉션 콘텐츠에 액세스할 수 있습니다.
echo $ pinyin ; // nǐ hǎo shì jiè
// 直接将对象转成字符串
$ string = ( string ) $ pinyin ; // nǐ hǎo shì jiè
$ pinyin -> toArray (); // ['nǐ', 'hǎo', 'shì', 'jiè']
// 直接使用索引访问
$ pinyin [ 0 ]; // 'nǐ'
// 使用函数遍历
$ pinyin -> map ( ' ucfirst ' ); // ['Nǐ', 'Hǎo', 'Shì', 'Jiè']
// 拼接为字符串
$ pinyin -> join ( ' ' ); // 'nǐ hǎo shì jiè'
$ pinyin -> join ( ' - ' ); // 'nǐ-hǎo-shì-jiè'
// 转成 json
$ pinyin -> toJson (); // '["nǐ","hǎo","shì","jiè"]'
json_encode ( $ pinyin ); // '["nǐ","hǎo","shì","jiè"]'
use Overtrue Pinyin Pinyin ;
echo Pinyin:: sentence ( '带着希望去旅行,比到达终点更美好' );
// dài zhe xī wàng qù lǚ xíng , bǐ dào dá zhōng diǎn gèng měi hǎo
// 去除声调
echo Pinyin:: sentence ( '带着希望去旅行,比到达终点更美好' , ' none ' );
// dai zhe xi wang qu lv xing , bi dao da zhong dian geng mei hao
// 保留所有非汉字字符
echo Pinyin:: fullSentence ( 'ル是片假名,π是希腊字母' , ' none ' );
// ル shi pian jia ming ,π shi xi la zi mu
일반적으로 기사 링크 등에 사용되며 permalink
방법을 사용하여 병음 문자열을 얻을 수 있습니다.
echo Pinyin:: permalink ( '带着希望去旅行' ); // dai-zhe-xi-wang-qu-lyu-xing
echo Pinyin:: permalink ( '带着希望去旅行' , ' . ' ); // dai.zhe.xi.wang.qu.lyu.xing
일반적으로 검색용 인덱스를 만드는 데 사용되며 abbr
메서드를 사용하여 다음을 변환할 수 있습니다.
Pinyin:: abbr ( '带着希望去旅行' ); // ['d', 'z', 'x', 'w', 'q', 'l', 'x']
echo Pinyin:: abbr ( '带着希望去旅行' )-> join ( ' - ' ); // d-z-x-w-q-l-x
echo Pinyin:: abbr ( '你好2018! ' )-> join ( '' ); // nh2018
echo Pinyin:: abbr ( ' Happy New Year! 2018! ' )-> join ( '' ); // HNY2018
// 保留原字符串的英文单词
echo Pinyin:: abbr ( ' CGV电影院' , false , true )-> join ( '' ); // CGVdyy
머리 글자
첫 글자를 성으로 변환하고 나머지는 일반 단어로 변환합니다.
Pinyin:: nameAbbr ( '欧阳' ); // ['o', 'y']
echo Pinyin:: nameAbbr ( '单单单' )-> join ( ' - ' ); // s-d-d
이름의 성의 발음은 일반 문자의 발음과 다소 다릅니다. 예를 들어 'dan'의 일반적인 발음은 dan
이지만 성으로 사용될 때는 shan
으로 발음됩니다.
Pinyin:: name ( '单某某' ); // ['shàn', 'mǒu', 'mǒu']
Pinyin:: name ( '单某某' , ' none ' ); // ['shan', 'mou', 'mou']
Pinyin:: name ( '单某某' , ' none ' )-> join ( ' - ' ); // shan-mou-mou
중국 여권 여행 서류 이름의 병음 ü(Lu, Lu, Lu, Lu, Nv 등)가 YU로 통일적으로 표기된다는 알림에 관한 국가 규정에 따라 ü
yu
로 변환합니다.
Pinyin:: passportName ( '吕小布' ); // ['lyu', 'xiao', 'bu']
Pinyin:: passportName ( '女小花' ); // ['nyu', 'xiao', 'hua']
Pinyin:: passportName ( '律师' ); // ['lyu', 'shi']
다음 문자의 반환 값은 연관 배열의 모음입니다. 기본적으로 중복 제거 후의 모든 발음이 반환됩니다.
$ pinyin = Pinyin:: polyphones ( '重庆' );
$ pinyin [ '重' ]; // ["zhòng", "chóng", "tóng"]
$ pinyin [ '庆' ]; // ["qìng"]
$ pinyin -> toArray ();
// [
// "重": ["zhòng", "chóng", "tóng"],
// "庆": ["qìng"]
// ]
중복된 항목을 제거하지 않으려면 배열 형식으로 반환할 수 있습니다.
$ pinyin = Pinyin:: polyphones ( '重庆重庆' , Converter:: TONE_STYLE_SYMBOL , true );
// or
$ pinyin = Pinyin:: polyphonesAsArray ( '重庆重庆' , Converter:: TONE_STYLE_SYMBOL );
$ pinyin -> toArray ();
// [
// ["重" => ["zhòng", "chóng", "tóng"]],
// ["庆" => ["qìng"]],
// ["重" => ["zhòng", "chóng", "tóng"]],
// ["庆" => ["qìng"]]
// ]
다성 문자와 마찬가지로 단일 문자의 반환 값은 문자열입니다. 다성 문자는 일반적인 소리를 얻기 위해 문자의 빈도에 따라 조정됩니다.
$ pinyin = Pinyin:: chars ( '重庆' );
echo $ pinyin [ '重' ]; // "zhòng"
echo $ pinyin [ '庆' ]; // "qìng"
$ pinyin -> toArray ();
// [
// "重": "zhòng",
// "庆": "qìng"
// ]
경고
단일 단어를 처리할 때 다음어 단어는 단어 빈도표에서 일반적인 소리를 가져오기 때문에 단어 환경에서는 잘못된 상황이 발생할 수 있습니다.
자세한 사용법은 테스트 케이스를 참고하세요.
국어문자실무위원회 규정에 따르면 lv
, lyu
, lǚ
는 모두 맞으나 lv
가장 일반적으로 사용되므로 lv
기본으로 사용하므로 다른 것을 사용해야 하는 경우에는 그대로 사용하면 됩니다. 초기화 중:
echo Pinyin:: sentence ( '旅行' );
// lǚ xíng
echo Pinyin:: sentence ( '旅行' , ' none ' );
// lv xing
echo Pinyin:: yuToYu ()-> sentence ( '旅行' , ' none ' );
// lyu xing
echo Pinyin:: yuToU ()-> sentence ( '旅行' , ' none ' );
// lu xing
echo Pinyin:: yuToV ()-> sentence ( '旅行' , ' none ' );
// lv xing
경고
병음 스타일이
none
아닌 경우에만 유효합니다.
명령줄을 사용하여 병음을 변환할 수 있습니다.
php ./bin/pinyin 带着希望去旅行 --method=sentence --tone-style=symbol
# dài zhe xī wàng qù lǚ xíng
더 많은 사용 방법을 보려면 도움말 문서를 참조하세요.
php ./bin/pinyin --help
# Usage:
# ./pinyin [chinese] [method] [options]
# Options:
# -j, --json 输出 JSON 格式.
# -c, --compact 不格式化输出 JSON.
# -m, --method=[method] 转换方式,可选:sentence/sentenceFull/permalink/abbr/nameAbbr/name/passportName/phrase/polyphones/chars.
# --no-tone 不使用音调.
# --tone-style=[style] 音调风格,可选值:symbol/none/number, default: none.
# -h, --help 显示帮助.
독립 패키지는 여기에 있습니다: overtrue/laravel-pinyin
이러한 필요성이 있는 경우 다른 패키지인 overtrue/php-opencc에 대해 알아볼 수도 있습니다.
의견을 제공하고 어휘력을 향상시키신 것을 환영합니다.
내 프로젝트가 마음에 들고 지원하고 싶다면 여기를 클릭하세요.
이 프로젝트와 기타 오픈 소스 프로젝트에 참여할 수 있도록 친절하게 라이선스를 제공해 주신 Jetbrains에 진심으로 감사드립니다.
처음부터 PHP 확장 패키지를 구축하는 방법이 궁금하십니까?
확장 개발 경험을 공유할 실습 과정인 "PHP Extension Pack Practical Tutorial - 시작하기부터 릴리스까지"에 주목하시기 바랍니다.
MIT