php 将中文字符转英文字母_php 提取字符串的中文首字母,如何考虑到英文和数字的情况...
发布日期:2021-08-20 01:25:27 浏览次数:4 分类:技术文章

本文共 1478 字,大约阅读时间需要 4 分钟。

function getFirstCharter($str)

{

if (empty($str)) {

return '';

}

$fchar = ord($str{0});

if ($fchar >= ord('A') && $fchar <= ord('z'))

return strtoupper($str{0});

$s1 = iconv('UTF-8', 'gb2312', $str);

$s2 = iconv('gb2312', 'UTF-8', $s1);

$s = $s2 == $str ? $s1 : $str;

$asc = ord($s{0}) * 256 + ord($s{1}) - 65536;

if ($asc >= -20319 && $asc <= -20284)

return 'A';

if ($asc >= -20283 && $asc <= -19776)

return 'B';

if ($asc >= -19775 && $asc <= -19219)

return 'C';

if ($asc >= -19218 && $asc <= -18711)

return 'D';

if ($asc >= -18710 && $asc <= -18527)

return 'E';

if ($asc >= -18526 && $asc <= -18240)

return 'F';

if ($asc >= -18239 && $asc <= -17923)

return 'G';

if ($asc >= -17922 && $asc <= -17418)

return 'H';

if ($asc >= -17417 && $asc <= -16475)

return 'J';

if ($asc >= -16474 && $asc <= -16213)

return 'K';

if ($asc >= -16212 && $asc <= -15641)

return 'L';

if ($asc >= -15640 && $asc <= -15166)

return 'M';

if ($asc >= -15165 && $asc <= -14923)

return 'N';

if ($asc >= -14922 && $asc <= -14915)

return 'O';

if ($asc >= -14914 && $asc <= -14631)

return 'P';

if ($asc >= -14630 && $asc <= -14150)

return 'Q';

if ($asc >= -14149 && $asc <= -14091)

return 'R';

if ($asc >= -14090 && $asc <= -13319)

return 'S';

if ($asc >= -13318 && $asc <= -12839)

return 'T';

if ($asc >= -12838 && $asc <= -12557)

return 'W';

if ($asc >= -12556 && $asc <= -11848)

return 'X';

if ($asc >= -11847 && $asc <= -11056)

return 'Y';

if ($asc >= -11055 && $asc <= -10247)

return 'Z';

return null;

}

转载地址:https://blog.csdn.net/weixin_32141627/article/details/115103206 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php 图片处理慢,php常用图片处理类
下一篇:java 拼音首字母 高效_如何实现一个高效的拼音匹配库?解决多音字,首字母匹配等问题...

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月20日 04时07分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

带你玩转属于自己自己的spring-boot-starter系列(二) 2019-04-27
带你玩转属于自己的spring-boot-starter系列(三) 2019-04-27
基于SnowFlake算法如何让分库分表中不同的ID落在同一个库的算法的实现 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分库解决方案(二) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分表解决方案(一) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之关联查询解决方案(三) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之基于seata的分布式事务的解决方案(十五) 2019-04-27
Linux文件管理参考 2019-04-27
FTP文件管理项目(本地云)项目日报(一) 2019-04-27
FTP文件管理项目(本地云)项目日报(二) 2019-04-27
FTP文件管理项目(本地云)项目日报(三) 2019-04-27
FTP文件管理项目(本地云)项目日报(四) 2019-04-27
【C++】勉强能看的线程池详解 2019-04-27
FTP文件管理项目(本地云)项目日报(五) 2019-04-27
FTP文件管理项目(本地云)项目日报(关于不定长包的测试) 2019-04-27
FTP文件管理项目(本地云)项目日报(六) 2019-04-27
FTP文件管理项目(本地云)项目日报(七) 2019-04-27
FTP文件管理项目(本地云)项目日报(八) 2019-04-27
【Linux】血泪教训 -- 动态链接库配置方法 2019-04-27
FTP文件管理项目(本地云)项目日报(九) 2019-04-27