问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP 中文转拼音并首字母大写

发布网友 发布时间:2022-04-24 22:37

我来回答

1个回答

热心网友 时间:2022-04-06 03:22

<?php
function getfirstchar($s0){   
    $fchar = ord($s0{0});
    if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0});
    $s1 = iconv("UTF-8","gb2312", $s0);
    $s2 = iconv("gb2312","UTF-8", $s1);
    if($s2 == $s0){$s = $s1;}else{$s = $s0;}
    $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
    if($asc >= -20319 and $asc <= -20284) return "A";
    if($asc >= -20283 and $asc <= -19776) return "B";
    if($asc >= -19775 and $asc <= -19219) return "C";
    if($asc >= -19218 and $asc <= -18711) return "D";
    if($asc >= -18710 and $asc <= -18527) return "E";
    if($asc >= -18526 and $asc <= -18240) return "F";
    if($asc >= -18239 and $asc <= -17923) return "G";
    if($asc >= -17922 and $asc <= -17418) return "H";
    if($asc >= -17417 and $asc <= -16475) return "J";
    if($asc >= -16474 and $asc <= -16213) return "K";
    if($asc >= -16212 and $asc <= -15641) return "L";
    if($asc >= -15640 and $asc <= -15166) return "M";
    if($asc >= -15165 and $asc <= -14923) return "N";
    if($asc >= -14922 and $asc <= -14915) return "O";
    if($asc >= -14914 and $asc <= -14631) return "P";
    if($asc >= -14630 and $asc <= -14150) return "Q";
    if($asc >= -14149 and $asc <= -14091) return "R";
    if($asc >= -14090 and $asc <= -13319) return "S";
    if($asc >= -13318 and $asc <= -12839) return "T";
    if($asc >= -12838 and $asc <= -12557) return "W";
    if($asc >= -12556 and $asc <= -11848) return "X";
    if($asc >= -11847 and $asc <= -11056) return "Y";
    if($asc >= -11055 and $asc <= -10247) return "Z";
    return null;
}

function make_semiangle($str){
    $arr = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', 'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E', 'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J', 'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O', 'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T', 'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y', 'Z' => 'Z', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', '(' => '(', ')' => ')', '〔' => '[', '〕' => ']', '【' => '[', '】' => ']', '〖' => '[', '〗' => ']', '“' => '"', '”' => '"', '‘' => '\'', '’' => '\'', '{' => '{', '}' => '}', '《' => '<', '》' => '>', '%' => '%', '+' => '+', '—' => '-', '-' => '-', '~' => '-', ':' => ':', '。' => '.', '、' => ',', ',' => ',', ';' => ';', '?' => '?', '!' => '!', '…' => '...', '‖' => '|', '|' => '|', '〃' => '"', ' ' => ' ');
    return strtr($str, $arr);
}

function pinyin1($zh){
    $zh = make_semiangle($zh);
    $ret = "";
    $s1 = iconv("UTF-8","gb2312", $zh);
    $s2 = iconv("gb2312","UTF-8", $s1);
    if($s2 == $zh){$zh = $s1;}
    for($i = 0; $i < strlen($zh); $i++){
        $s1 = substr($zh,$i,1);
        $p = ord($s1);
        if($p > 160){
            $s2 = substr($zh,$i++,2);
            $ret .= getfirstchar($s2);
        }else{
            $ret .= $s1;
        }
    }
    return $ret;
}

//用法
echo pinyin1('中文获取首字母大写,‘支持’全角“的”转化!');
?>

 数字跟英文的全角被百度自动转了,如果需要下载附件源码

追问不好意思哈,理解你的转化思路,但这句话我怎么这里执行结果是:
ZWHQSZMD,'ZC'QJ"D"ZH!
好像 写应该是X 没有了,我试过些 也没。。。
譬如:“写些项目” 执行的结果就是:XM
写和些都没。。。这个原理是ASCII码分析吗?不是很懂

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
css布局绝对定位和相对定位疑惑? 湖北对口单招有哪些大学 湖北单招最好考的学校有哪些 玻璃隔断吗 《八佰》中的南岸刀子,《药神》中的沉默黄毛 有哪些适合新手养的蛇品种推荐? 新手喂养什么宠物蛇比较好? 色叔叔茜色是什么色 仓鼠上窜下跳一直不停,是什么原因? 禽医静心谈鸭黄病毒的主要症状有哪些?鸭子得了黄病毒怎么治疗? 广州南沙环保空调哪家好? 想学电子商务,但不知道这专业具体学些什么课程 电子商务要学些什么课程 空调清洗是自己洗还是专业的人洗?一般多少钱? 懂方正腾飞文案排版好找工作吗 想进军广告设计或者服装设计行业,需要掌握什么软件?除了photoshop,还有那些? 叫专业公司清洗一台空调要多长时间?多少钱呢?? 请问报班学半年的广告艺术设计怎么样啊? 我想知道学电脑的办公全科是学什么,最要紧的是要学会什么? 今天经过南沙德迪奥迪好多人,说什么清洗空调免费,有人知道吗? MSP有哪些含义? UI设计学完了都能做什么,和平面设计有什么区别? 商务办公是什么?有什么好处? PCL的基本知识 打印机“pcl5”和“pcl6”是什么意思? 疫情前的生活,最让你怀念的是什么? 男孩隔离为了报平安拍视频给志愿者妈妈看,你在隔离期间怎么给父母报平安? 我和老公在外地打工,生意刚起步,还没怎么挣钱,现在又疫情了,好难。娘家妈妈又暗示我给她买手机,我? 经过这次疫情,你最想对妻子说的是什么? 抗疫英烈女儿给爸爸的一封信,信中究竟写了什么? 操作PHP进行文字转换的过程中 PHP网站修改文字 PHP怎么把数字转换成文字。 作文评语的评语集锦 php能给要写入数据库的文字转义的那个函数是什么? 如何将文字用php转换成图片? 告别懒惰作文评语大全 谁知道怎么修改PHP网站里的文字? 作文家长评语怎么写20字 PHP如何实现点击文字,跳转到另外的一个PHP页面 PHP十六进制,十进制,八进制,二进制怎么转回原本的文字? 给作文写评语怎么写 PHP提取文字 PHP的文字变成了问号? 想在php网站插入一段文字,怎么添加,急,谢谢 php 写网站 只要求输出一段文字,求老师指点,代码该怎么写, 作文写评语怎么写? php中怎么把文字加粗 一句简单的php语句,增加文字 替换php中的文字