検索
ホームページバックエンド開発PHPチュートリアルPHP汉字转拼音的两种步骤+PHP提取汉字(中文)方法

PHP汉字转拼音的两种方法+PHP提取汉字(中文)方法

方法一:根据ASCII码转换,GB2312库对多音字也无能为力。

GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。

GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
01-09区为特殊符号。
16-55区为一级汉字,按拼音排序。(3755个)
56-87区为二级汉字,按部首/笔画排序。(3008个)
10-15区及88-94区则未有编码。
占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。所以实际共6763个汉字。其中一级汉字3755个,二级汉字3008个。而此类算法实际只能转换3755个汉字。


优点:没有使用大文字库,文件相对较小,没有使用正则表达式,性能相对较高。支持首字母转换。
缺点:没有在GB2312中收录的汉字无法转换,多音字无法识别。
(如果对拼音转换要求不高的朋友,建议使用这个。)

<?php // 此类是根据ASCII码转换,GB2312库对多音字也无能为力。// GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。class pinyin{	public static function utf8_to($s, $isfirst = false) {		return self::to(self::utf8_to_gb2312($s), $isfirst);	}	public static function utf8_to_gb2312($s) {		return iconv('UTF-8', 'GB2312//IGNORE', $s);	}	// 字符串必须为GB2312编码	public static function to($s, $isfirst = false) {		$res = '';		$len = strlen($s);		$pinyin_arr = self::get_pinyin_array();		for($i=0; $i<$len; $i++) {			$ascii = ord($s{$i});			if($ascii > 0x80) {				$ascii2 = ord($s{++$i});				$ascii = $ascii * 256 + $ascii2 - 65536;			}			if($ascii  0) {				if(($ascii >= 48 && $ascii = 97 && $ascii = 65 && $ascii  -10247) {				$res .= '_';			}else{				foreach($pinyin_arr as $py=>$asc) {					if($asc  0xE0) {			$s = self::utf8_to_gb2312($s{0}.$s{1}.$s{2});		}elseif($ascii = 65 && $ascii = 97 && $ascii =-20319 && $asc=-20283 && $asc=-19775 && $asc=-19218 && $asc=-18710 && $asc=-18526 && $asc=-18239 && $asc=-17922 && $asc=-17417 && $asc=-16474 && $asc=-16212 && $asc=-15640 && $asc=-15165 && $asc=-14922 && $asc=-14914 && $asc=-14630 && $asc=-14149 && $asc=-14090 && $asc=-13318 && $asc=-12838 && $asc=-12556 && $asc=-11847 && $asc=-11055 && $asc

方法二:根据拼音组合数组检索

<?php class pinyin{    private $d=array(       array("a",-20319),       array("ai",-20317),       array("an",-20304),       array("ang",-20295),       array("ao",-20292),       array("ba",-20283),       array("bai",-20265),       array("ban",-20257),       array("bang",-20242),       array("bao",-20230),       array("bei",-20051),       array("ben",-20036),       array("beng",-20032),       array("bi",-20026),       array("bian",-20002),       array("biao",-19990),       array("bie",-19986),       array("bin",-19982),       array("bing",-19976),       array("bo",-19805),       array("bu",-19784),       array("ca",-19775),       array("cai",-19774),       array("can",-19763),       array("cang",-19756),       array("cao",-19751),       array("ce",-19746),       array("ceng",-19741),       array("cha",-19739),       array("chai",-19728),       array("chan",-19725),       array("chang",-19715),       array("chao",-19540),       array("che",-19531),       array("chen",-19525),       array("cheng",-19515),       array("chi",-19500),       array("chong",-19484),       array("chou",-19479),       array("chu",-19467),       array("chuai",-19289),       array("chuan",-19288),       array("chuang",-19281),       array("chui",-19275),       array("chun",-19270),       array("chuo",-19263),       array("ci",-19261),       array("cong",-19249),       array("cou",-19243),       array("cu",-19242),       array("cuan",-19238),       array("cui",-19235),       array("cun",-19227),       array("cuo",-19224),       array("da",-19218),       array("dai",-19212),       array("dan",-19038),       array("dang",-19023),       array("dao",-19018),       array("de",-19006),       array("deng",-19003),       array("di",-18996),       array("dian",-18977),       array("diao",-18961),       array("die",-18952),       array("ding",-18783),       array("diu",-18774),       array("dong",-18773),       array("dou",-18763),       array("du",-18756),       array("duan",-18741),       array("dui",-18735),       array("dun",-18731),       array("duo",-18722),       array("e",-18710),       array("en",-18697),       array("er",-18696),       array("fa",-18526),       array("fan",-18518),       array("fang",-18501),       array("fei",-18490),       array("fen",-18478),       array("feng",-18463),       array("fo",-18448),       array("fou",-18447),       array("fu",-18446),       array("ga",-18239),       array("gai",-18237),       array("gan",-18231),       array("gang",-18220),       array("gao",-18211),       array("ge",-18201),       array("gei",-18184),       array("gen",-18183),       array("geng",-18181),       array("gong",-18012),       array("gou",-17997),       array("gu",-17988),       array("gua",-17970),       array("guai",-17964),       array("guan",-17961),       array("guang",-17950),       array("gui",-17947),       array("gun",-17931),       array("guo",-17928),       array("ha",-17922),       array("hai",-17759),       array("han",-17752),       array("hang",-17733),       array("hao",-17730),       array("he",-17721),       array("hei",-17703),       array("hen",-17701),       array("heng",-17697),       array("hong",-17692),       array("hou",-17683),       array("hu",-17676),       array("hua",-17496),       array("huai",-17487),       array("huan",-17482),       array("huang",-17468),       array("hui",-17454),       array("hun",-17433),       array("huo",-17427),       array("ji",-17417),       array("jia",-17202),       array("jian",-17185),       array("jiang",-16983),       array("jiao",-16970),       array("jie",-16942),       array("jin",-16915),       array("jing",-16733),       array("jiong",-16708),       array("jiu",-16706),       array("ju",-16689),       array("juan",-16664),       array("jue",-16657),       array("jun",-16647),       array("ka",-16474),       array("kai",-16470),       array("kan",-16465),       array("kang",-16459),       array("kao",-16452),       array("ke",-16448),       array("ken",-16433),       array("keng",-16429),       array("kong",-16427),       array("kou",-16423),       array("ku",-16419),       array("kua",-16412),       array("kuai",-16407),       array("kuan",-16403),       array("kuang",-16401),       array("kui",-16393),       array("kun",-16220),       array("kuo",-16216),       array("la",-16212),       array("lai",-16205),       array("lan",-16202),       array("lang",-16187),       array("lao",-16180),       array("le",-16171),       array("lei",-16169),       array("leng",-16158),       array("li",-16155),       array("lia",-15959),       array("lian",-15958),       array("liang",-15944),       array("liao",-15933),       array("lie",-15920),       array("lin",-15915),       array("ling",-15903),       array("liu",-15889),       array("long",-15878),       array("lou",-15707),       array("lu",-15701),       array("lv",-15681),       array("luan",-15667),       array("lue",-15661),       array("lun",-15659),       array("luo",-15652),       array("ma",-15640),       array("mai",-15631),       array("man",-15625),       array("mang",-15454),       array("mao",-15448),       array("me",-15436),       array("mei",-15435),       array("men",-15419),       array("meng",-15416),       array("mi",-15408),       array("mian",-15394),       array("miao",-15385),       array("mie",-15377),       array("min",-15375),       array("ming",-15369),       array("miu",-15363),       array("mo",-15362),       array("mou",-15183),       array("mu",-15180),       array("na",-15165),       array("nai",-15158),       array("nan",-15153),       array("nang",-15150),       array("nao",-15149),       array("ne",-15144),       array("nei",-15143),       array("nen",-15141),       array("neng",-15140),       array("ni",-15139),       array("nian",-15128),       array("niang",-15121),       array("niao",-15119),       array("nie",-15117),       array("nin",-15110),       array("ning",-15109),       array("niu",-14941),       array("nong",-14937),       array("nu",-14933),       array("nv",-14930),       array("nuan",-14929),       array("nue",-14928),       array("nuo",-14926),       array("o",-14922),       array("ou",-14921),       array("pa",-14914),       array("pai",-14908),       array("pan",-14902),       array("pang",-14894),       array("pao",-14889),       array("pei",-14882),       array("pen",-14873),       array("peng",-14871),       array("pi",-14857),       array("pian",-14678),       array("piao",-14674),       array("pie",-14670),       array("pin",-14668),       array("ping",-14663),       array("po",-14654),       array("pu",-14645),       array("qi",-14630),       array("qia",-14594),       array("qian",-14429),       array("qiang",-14407),       array("qiao",-14399),       array("qie",-14384),       array("qin",-14379),       array("qing",-14368),       array("qiong",-14355),       array("qiu",-14353),       array("qu",-14345),       array("quan",-14170),       array("que",-14159),       array("qun",-14151),       array("ran",-14149),       array("rang",-14145),       array("rao",-14140),       array("re",-14137),       array("ren",-14135),       array("reng",-14125),       array("ri",-14123),       array("rong",-14122),       array("rou",-14112),       array("ru",-14109),       array("ruan",-14099),       array("rui",-14097),       array("run",-14094),       array("ruo",-14092),       array("sa",-14090),       array("sai",-14087),       array("san",-14083),       array("sang",-13917),       array("sao",-13914),       array("se",-13910),       array("sen",-13907),       array("seng",-13906),       array("sha",-13905),       array("shai",-13896),       array("shan",-13894),       array("shang",-13878),       array("shao",-13870),       array("she",-13859),       array("shen",-13847),       array("sheng",-13831),       array("shi",-13658),       array("shou",-13611),       array("shu",-13601),       array("shua",-13406),       array("shuai",-13404),       array("shuan",-13400),       array("shuang",-13398),       array("shui",-13395),       array("shun",-13391),       array("shuo",-13387),       array("si",-13383),       array("song",-13367),       array("sou",-13359),       array("su",-13356),       array("suan",-13343),       array("sui",-13340),       array("sun",-13329),       array("suo",-13326),       array("ta",-13318),       array("tai",-13147),       array("tan",-13138),       array("tang",-13120),       array("tao",-13107),       array("te",-13096),       array("teng",-13095),       array("ti",-13091),       array("tian",-13076),       array("tiao",-13068),       array("tie",-13063),       array("ting",-13060),       array("tong",-12888),       array("tou",-12875),       array("tu",-12871),       array("tuan",-12860),       array("tui",-12858),       array("tun",-12852),       array("tuo",-12849),       array("wa",-12838),       array("wai",-12831),       array("wan",-12829),       array("wang",-12812),       array("wei",-12802),       array("wen",-12607),       array("weng",-12597),       array("wo",-12594),       array("wu",-12585),       array("xi",-12556),       array("xia",-12359),       array("xian",-12346),       array("xiang",-12320),       array("xiao",-12300),       array("xie",-12120),       array("xin",-12099),       array("xing",-12089),       array("xiong",-12074),       array("xiu",-12067),       array("xu",-12058),       array("xuan",-12039),       array("xue",-11867),       array("xun",-11861),       array("ya",-11847),       array("yan",-11831),       array("yang",-11798),       array("yao",-11781),       array("ye",-11604),       array("yi",-11589),       array("yin",-11536),       array("ying",-11358),       array("yo",-11340),       array("yong",-11339),       array("you",-11324),       array("yu",-11303),       array("yuan",-11097),       array("yue",-11077),       array("yun",-11067),       array("za",-11055),       array("zai",-11052),       array("zan",-11045),       array("zang",-11041),       array("zao",-11038),       array("ze",-11024),       array("zei",-11020),       array("zen",-11019),       array("zeng",-11018),       array("zha",-11014),       array("zhai",-10838),       array("zhan",-10832),       array("zhang",-10815),       array("zhao",-10800),       array("zhe",-10790),       array("zhen",-10780),       array("zheng",-10764),       array("zhi",-10587),       array("zhong",-10544),       array("zhou",-10533),       array("zhu",-10519),       array("zhua",-10331),       array("zhuai",-10329),       array("zhuan",-10328),       array("zhuang",-10322),       array("zhui",-10315),       array("zhun",-10309),       array("zhuo",-10307),       array("zi",-10296),       array("zong",-10281),       array("zou",-10274),       array("zu",-10270),       array("zuan",-10262),       array("zui",-10260),       array("zun",-10256),       array("zuo",-10254)    );  	public function get_pinyin($str,$charset="utf-8"){  		if($charset!="gb2312"){  			$str=$this->set_char($str,$charset,"gb2312");  			$str=$this->c($str);  			$str=$this->set_char($str,"gb2312",$charset);  		}else{  			$str=$this->c($str);  		}  		return $str;  	}    private function set_char($str,$charset="utf-8",$charset_out="gb2312"){    	if(function_exists('iconv')){           	$str=iconv($charset,$charset_out,$str);    	}elseif(function_exists("mb_convert_encoding")){    		$str=mb_convert_encoding($str,$charset_out,$charset);    	}    	return $str;    }	private function g($num){		if($num>0 && $num-10247){   			return "";		}else{   			for($i=count($this->d)-1;$i>=0;$i--){    			if($this->d[$i][1]d[$i][0];		}	}	private function c($str){		$ret="";		for($i=0;$i<strlen if>160){    			$q=ord(substr($str,++$i,1));    			$p=$p*256+$q-65536;   			}   			$ret.=$this->g($p);		}		return $ret;	}}function get_pinyin($str,$charset="utf-8"){	$pinyin=new pinyin();	return $pinyin->get_pinyin($str,$charset);}?></strlen>

PHP取得汉字(中文):

function getChinese($str,$charset='utf8'){	if($charset=='gb2312'){		if(!preg_match_all("/^[".chr(0xa1)."-".chr(0xff)."]+/",$str,$match)){			return false;		}		return implode('',$match[0]);	}	//	if($charset=='utf8'){		if(!preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$str,$match)){			return false;		}		return implode('',$match[0]);	}	return false;}
PHP取得汉字拼音字母数组标点:
//取得字符串中汉字字符数字下划线和短连接符、逗号、句号、分号、冒号、书名号、问号等非特殊字符  function getChinese($str,$charset='utf8'){	if($charset=='gb2312'){		if(!preg_match_all("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_\-\,\。\,\.\;\;\:\:\《\》\?\?\%\%\!\!\~\~]+/",$str,$match)){			return false;		}		return implode('',$match[0]);	}	if($charset=='utf8'){		if(!preg_match_all("/[\x{4e00}-\x{9fa5}A-Za-z0-9_\-\,\。\,\.\;\;\:\:\《\》\?\?\%\%\!\!\~\~]+/u",$str,$match)){			return false;		}		return implode('',$match[0]);	}	return false;  }


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
C语言return的用法详解C语言return的用法详解Oct 07, 2023 am 10:58 AM

C语言return的用法有:1、对于返回值类型为void的函数,可以使用return语句来提前结束函数的执行;2、对于返回值类型不为void的函数,return语句的作用是将函数的执行结果返回给调用者;3、提前结束函数的执行,在函数内部,我们可以使用return语句来提前结束函数的执行,即使函数并没有返回值。

Java中return和finally语句的执行顺序是怎样的?Java中return和finally语句的执行顺序是怎样的?Apr 25, 2023 pm 07:55 PM

源码:publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}#输出上述代码的输出可以简单地得出结论:return在finally之前执行,我们来看下字节码层面上发生了什么事情。下面截取case1方法的部分字节码,并且对照源码,将每个指令的含义注释在

使用C#中的Array.Sort函数对数组进行排序使用C#中的Array.Sort函数对数组进行排序Nov 18, 2023 am 10:37 AM

标题:C#中使用Array.Sort函数对数组进行排序的示例正文:在C#中,数组是一种常用的数据结构,经常需要对数组进行排序操作。C#提供了Array类,其中有Sort方法可以方便地对数组进行排序。本文将演示如何使用C#中的Array.Sort函数对数组进行排序,并提供具体的代码示例。首先,我们需要了解一下Array.Sort函数的基本用法。Array.So

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

简单明了的PHP array_merge_recursive()函数使用方法简单明了的PHP array_merge_recursive()函数使用方法Jun 27, 2023 pm 01:48 PM

在进行PHP编程时,我们常常需要对数组进行合并。PHP提供了array_merge()函数来完成数组合并的工作,不过当数组中存在相同的键时,该函数会覆盖原有的值。为了解决这个问题,PHP在语言中还提供了一个array_merge_recursive()函数,该函数可以合并数组并保留相同键的值,使得程序的设计变得更加灵活。array_merge

AMP是什么币?AMP是什么币?Feb 24, 2024 pm 09:16 PM

什么是AMP币?AMP代币是由Synereo团队于2015年创立,作为Synereo平台的主要交易货币。AMP代币旨在通过多种功能和用途,为用户提供更好的数字经济体验。AMP代币的用途AMP代币在Synereo平台中拥有多重角色和功能。首先,作为平台的加密货币奖励系统的一部分,用户能够通过分享和推广内容来获得AMP奖励,这一机制鼓励用户更积极地参与平台的活动。AMP代币还可用于在Synereo平台上推广和传播内容。用户可以通过使用AMP代币提升他们的内容在平台上的曝光率,以吸引更多观众来查看和分

如何使用PHP中的array_combine函数将两个数组拼成关联数组如何使用PHP中的array_combine函数将两个数组拼成关联数组Jun 26, 2023 pm 01:41 PM

在PHP中,有许多强大的数组函数可以使数组的操作更加方便和快捷。当我们需要将两个数组拼成一个关联数组时,可以使用PHP的array_combine函数来实现这一操作。这个函数实际上是用来将一个数组的键作为另一个数组的值,合并成一个新的关联数组。接下来,我们将会讲解如何使用PHP中的array_combine函数将两个数组拼成关联数组。了解array_comb

Vue3怎么使用setup语法糖拒绝写returnVue3怎么使用setup语法糖拒绝写returnMay 12, 2023 pm 06:34 PM

Vue3.2setup语法糖是在单文件组件(SFC)中使用组合式API的编译时语法糖解决Vue3.0中setup需要繁琐将声明的变量、函数以及import引入的内容通过return向外暴露,才能在使用的问题1.在使用中无需return声明的变量、函数以及import引入的内容,即可在使用语法糖//import引入的内容import{getToday}from&#39;./utils&#39;//变量constmsg=&#39;Hello!&#39;//函数func

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。