เครื่องมือแปลงภาษาจีนเป็นพินอินโดยใช้พจนานุกรม mozillazg/pinyin-data ซึ่งเป็นโซลูชันที่แม่นยำยิ่งขึ้นสำหรับการแปลงอักขระจีนเป็นพินอินที่รองรับอักขระหลายสัทศาสตร์
ชอบโครงการของฉันเหรอ? คลิกที่นี่เพื่อสนับสนุนฉัน
ติดตั้งโดยใช้นักแต่งเพลง:
composer require overtrue/pinyin:^5.0
ยกเว้นวิธีการรับตัวอักษรตัวแรก วิธีการทั้งหมดรองรับพารามิเตอร์ตัวที่สองซึ่งใช้ในการระบุรูปแบบพินอิน ค่าทางเลือกคือ:
symbol
(ค่าเริ่มต้น) สัญลักษณ์เสียง เช่น pīn yīn
none
จะไม่แสดงผลพินอิน เช่น pin yin
number
เช่น pin1 yin1
ยกเว้น 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 - ตั้งแต่เริ่มต้นจนถึงเผยแพร่"
เอ็มไอที