用PHP函数代码实现汉字转换拼音功能Word格式.docx
- 文档编号:6303897
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:10
- 大小:18.99KB
用PHP函数代码实现汉字转换拼音功能Word格式.docx
《用PHP函数代码实现汉字转换拼音功能Word格式.docx》由会员分享,可在线阅读,更多相关《用PHP函数代码实现汉字转换拼音功能Word格式.docx(10页珍藏版)》请在冰点文库上搜索。
tan|tang|tao|te|teng|ti|tian|tiao|tie|ting|tong|tou|tu|tuan|tui|tun|tuo|wa|wai|wan|wang|wei|wen|weng|wo|wu"
|xi|xia|xian|xiang|xiao|xie|xin|xing|xiong|xiu|xu|xuan|xue|xun|ya|yan|yang|yao|ye|yi|yin|ying|yo|yong|you"
|yu|yuan|yue|yun|za|zai|zan|zang|zao|ze|zei|zen|zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|"
zhou|zhu|zhua|zhuai|zhuan|zhuang|zhui|zhun|zhuo|zi|zong|zou|zu|zuan|zui|zun|zuo"
;
$_DataValue="
-20319|-20317|-20304|-20295|-20292|-20283|-20265|-20257|-20242|-20230|-20051|-20036|-20032|-20026|-20002|-19990"
|-19986|-19982|-19976|-19805|-19784|-19775|-19774|-19763|-19756|-19751|-19746|-19741|-19739|-19728|-19725"
|-19715|-19540|-19531|-19525|-19515|-19500|-19484|-19479|-19467|-19289|-19288|-19281|-19275|-19270|-19263"
|-19261|-19249|-19243|-19242|-19238|-19235|-19227|-19224|-19218|-19212|-19038|-19023|-19018|-19006|-19003"
|-18996|-18977|-18961|-18952|-18783|-18774|-18773|-18763|-18756|-18741|-18735|-18731|-18722|-18710|-18697"
|-18696|-18526|-18518|-18501|-18490|-18478|-18463|-18448|-18447|-18446|-18239|-18237|-18231|-18220|-18211"
|-18201|-18184|-18183|-18181|-18012|-17997|-17988|-17970|-17964|-17961|-17950|-17947|-17931|-17928|-17922"
|-17759|-17752|-17733|-17730|-17721|-17703|-17701|-17697|-17692|-17683|-17676|-17496|-17487|-17482|-17468"
|-17454|-17433|-17427|-17417|-17202|-17185|-16983|-16970|-16942|-16915|-16733|-16708|-16706|-16689|-16664"
|-16657|-16647|-16474|-16470|-16465|-16459|-16452|-16448|-16433|-16429|-16427|-16423|-16419|-16412|-16407"
|-16403|-16401|-16393|-16220|-16216|-16212|-16205|-16202|-16187|-16180|-16171|-16169|-16158|-16155|-15959"
|-15958|-15944|-15933|-15920|-15915|-15903|-15889|-15878|-15707|-15701|-15681|-15667|-15661|-15659|-15652"
|-15640|-15631|-15625|-15454|-15448|-15436|-15435|-15419|-15416|-15408|-15394|-15385|-15377|-15375|-15369"
|-15363|-15362|-15183|-15180|-15165|-15158|-15153|-15150|-15149|-15144|-15143|-15141|-15140|-15139|-15128"
|-15121|-15119|-15117|-15110|-15109|-14941|-14937|-14933|-14930|-14929|-14928|-14926|-14922|-14921|-14914"
|-14908|-14902|-14894|-14889|-14882|-14873|-14871|-14857|-14678|-14674|-14670|-14668|-14663|-14654|-14645"
|-14630|-14594|-14429|-14407|-14399|-14384|-14379|-14368|-14355|-14353|-14345|-14170|-14159|-14151|-14149"
|-14145|-14140|-14137|-14135|-14125|-14123|-14122|-14112|-14109|-14099|-14097|-14094|-14092|-14090|-14087"
|-14083|-13917|-13914|-13910|-13907|-13906|-13905|-13896|-13894|-13878|-13870|-13859|-13847|-13831|-13658"
|-13611|-13601|-13406|-13404|-13400|-13398|-13395|-13391|-13387|-13383|-13367|-13359|-13356|-13343|-13340"
|-13329|-13326|-13318|-13147|-13138|-13120|-13107|-13096|-13095|-13091|-13076|-13068|-13063|-13060|-12888"
|-12875|-12871|-12860|-12858|-12852|-12849|-12838|-12831|-12829|-12812|-12802|-12607|-12597|-12594|-12585"
|-12556|-12359|-12346|-12320|-12300|-12120|-12099|-12089|-12074|-12067|-12058|-12039|-11867|-11861|-11847"
|-11831|-11798|-11781|-11604|-11589|-11536|-11358|-11340|-11339|-11324|-11303|-11097|-11077|-11067|-11055"
|-11052|-11045|-11041|-11038|-11024|-11020|-11019|-11018|-11014|-10838|-10832|-10815|-10800|-10790|-10780"
|-10764|-10587|-10544|-10533|-10519|-10331|-10329|-10328|-10322|-10315|-10309|-10307|-10296|-10281|-10274"
|-10270|-10262|-10260|-10256|-10254"
$_TDataKey=explode('
|'
$_DataKey);
$_TDataValue=explode('
$_DataValue);
$_Data=(PHP_VERSION>
='
5.0'
)?
array_combine($_TDataKey,$_TDataValue):
$this->
Arr_Combine($_TDataKey,$_TDataValue);
arsort($_Data);
reset($_Data);
if($_Code!
='
)$_String=$this->
U2_Utf8_Gb($_String);
$_Res='
'
for($i=0;
$i<
strlen($_String);
$i++){
$_P=ord(substr($_String,$i,1));
if($_P>
160){$_Q=ord(substr($_String,++$i,1));
$_P=$_P*256+$_Q-65536;
}
$_Res.=$this->
Pinyins($_P,$_Data);
}
return$_Res;
//returnpreg_replace("
/[^a-z0-9]*/"
'
$_Res);
functionPinyins($_Num,$_Data){
if($_Num>
0&
&
$_Num<
160)returnchr($_Num);
elseif($_Num<
-20319||$_Num>
-10247)return'
else{
foreach($_Dataas$k=>
$v){if($v<
=$_Num)break;
return$k;
functionU2_Utf8_Gb($_C){
$_String='
if($_C<
0x80){
$_String.=$_C;
}elseif($_C<
0x800){
$_String.=chr(0xC0|$_C>
>
6);
$_String.=chr(0x80|$_C&
0x3F);
0x10000){
$_String.=chr(0xE0|$_C>
12);
$_String.=chr(0x80|$_C>
6&
0x200000){
$_String.=chr(0xF0|$_C>
18);
12&
returniconv('
UTF-8'
GB2312'
$_String);
functionArr_Combine($_Arr1,$_Arr2){
count($_Arr1);
$i++)$_Res[$_Arr1[$i]]=$_Arr2[$i];
//用法:
//第二个参数留空则为gb1232编码
//第二个参数随意设置则为utf-8编码
$pin=newpin();
echo$pin->
Pinyin('
中华人民'
'
UTF8'
);
//加密
functionstring2secret($str)
{
$key="
123"
$td=mcrypt_module_open(MCRYPT_DES,'
ecb'
$iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
$ks=mcrypt_enc_get_key_size($td);
$key=substr(md5($key),0,$ks);
mcrypt_generic_init($td,$key,$iv);
$secret=mcrypt_generic($td,$str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return$secret;
//解密
functionsecret2string($sec)
$string=mdecrypt_generic($td,$sec);
returntrim($string);
echosecret2string(string2secret("
11111111111111111"
));
//显示结果是111111*********11
echo'
br>
.string2secret("
//显示乱码
//$string:
要加密的字符串$isEncrypt=true:
加密$isEncrypt=false:
解密
functiondencrypt($string,$isEncrypt=true,$key="
KEY_SPACE"
){
if(!
isset($string{0})||!
isset($key{0})){
returnfalse;
$dynKey=$isEncrypt?
hash('
sha1'
microtime(true)):
substr($string,0,40);
$fixedKey=hash('
$key);
$dynKeyPart1=substr($dynKey,0,20);
$dynKeyPart2=substr($dynKey,20);
$fixedKeyPart1=substr($fixedKey,0,20);
$fixedKeyPart2=substr($fixedKey,20);
$key=hash('
$dynKeyPart1.$fixedKeyPart1.$dynKeyPart2.$fixedKeyPart2);
$string=$isEncrypt?
$fixedKeyPart1.$string.$dynKeyPart2:
(isset($string{339})?
gzuncompress(base64_decode(substr($string,40))):
base64_decode(substr($string,40)));
$n=0;
$result='
$len=strlen($string);
for($n=0;
$n<
$len;
$n++){
$result.=chr(ord($string{$n})^ord($key{$n%40}));
return$isEncrypt?
$dynKey.str_replace('
base64_encode($n>
299?
gzcompress($result):
$result)):
substr($result,20,-20);
echostrlen(dencrypt("
12345678912345"
null合并运算符是一个好东西,有了它我们就能很方便的获取一个参数,并能在其为空的情况下提供一个默认值。
比如在js中可以用||来搞:
functionsetSomething(a){
a=a||'
some-default-value'
//...
而在PHP中,可惜PHP的||总是返回true或false,无法这样来搞。
PHP7才正式加入了?
这个运算符:
//获取user参数的值(如果为空,则用'
nobody'
)
$username=$_GET['
user'
]?
'
//等价于:
$username=isset($_GET['
])?
$_GET['
]:
PHP7估计还有很长时间才能用到生产环境中,那在目前的PHP5中有没有替代方案呢?
据研究,完全有个非常便捷的替代方案:
$username=@$_GET['
:
--运行此代码:
3v4l.org/aDUW8
瞪大了眼睛看,跟前面的PHP7的例子差不多,主要是把?
替换为了?
。
这个是个什么鬼呢?
其实这就是(expr1)?
(expr2):
(expr3)表达式的省略模式:
表达式(expr1)?
(expr3)在expr1求值为TRUE时的值为expr2,在expr1求值为FALSE时的值为expr3。
自PHP5.3起,可以省略三元运算符中间那部分。
表达式expr1?
expr3在expr1求值为TRUE时返回expr1,否则返回expr3。
--
当然,这个替代方案也不是完美的——如果$_GET中没有'
,会有一条Notice:
Undefinedindex:
user的错误,所以需要用@来抑制这个错误,或者关闭E_NOTICE的错误。
ps:
PHP7null合并运算符告别isset()
以前的写法
$info=isset($_GET['
email'
‘noemail'
现在直接这样写就可以了
$info=$_GET['
noemail;
还可以这样连写使用
$_POST['
希望本文对大家学习php程序设计有所帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 函数 代码 实现 汉字 转换 拼音 功能