最近项目有个需求,在一个中英文(包括阿拉伯数字0-9)的海量词库中,提取每一个词语的首字母:
gannicus——>G
自由自在——>Z
2B——>E
傻X——>S
复制代码 代码如下:
private function getfirstchar($s0){
$s=iconv('UTF-8','gb2312', $s0);
if (ord($s0)>128) { //汉字开头
$asc=ord($s{0})*256+ord($s{1})-65536;
if($asc>=-20319 and $asc if($asc>=-20283 and $asc if($asc>=-19775 and $asc if($asc>=-19218 and $asc if($asc>=-18710 and $asc if($asc>=-18526 and $asc if($asc>=-18239 and $asc if($asc>=-17922 and $asc if($asc>=-17417 and $asc if($asc>=-16474 and $asc if($asc>=-16212 and $asc if($asc>=-15640 and $asc if($asc>=-15165 and $asc if($asc>=-14922 and $asc if($asc>=-14914 and $asc if($asc>=-14630 and $asc if($asc>=-14149 and $asc if($asc>=-14090 and $asc if($asc>=-13318 and $asc if($asc>=-12838 and $asc if($asc>=-12556 and $asc if($asc>=-11847 and $asc if($asc>=-11055 and $asc }else if(ord($s)>=48 and ord($s) switch(iconv_substr($s,0,1,'utf-8'))
{
case 1:return "Y";
case 2:return "E";
case 3:return "S";
case 4:return "S";
case 5:return "W";
case 6:return "L";
case 7:return "Q";
case 8:return "B";
case 9:return "J";
case 0:return "L";
}
}else if(ord($s)>=65 and ord($s) return substr($s,0,1);
}else if(ord($s)>=97 and ord($s) return strtoupper(substr($s,0,1));
}
else
{
return iconv_substr($s0,0,1,'utf-8');//中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可
}
}
遗留问题:仍有少量词语无法提取,如亘古不灭,的G 没有提取出来
最终效果如图:

tomakephpapplicationsfaster,关注台词:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

依赖注入(DI)通过显式传递依赖关系,显着提升了PHP代码的可测试性。 1)DI解耦类与具体实现,使测试和维护更灵活。 2)三种类型中,构造函数注入明确表达依赖,保持状态一致。 3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

databasequeryOptimizationinphpinvolVolVOLVESEVERSEVERSTRATEMIESOENHANCEPERANCE.1)SELECTONLYNLYNESSERSAYCOLUMNSTORMONTOUMTOUNSOUDSATATATATATATATATATATRANSFER.3)

phpisusedforsenderemailsduetoitsbuilt-inmail()函数andsupportiveLibrariesLikePhpMailerandSwiftMailer.1)usethemail()functionforbasicemails,butithasimails.2)butithasimimitations.2)

依赖性(di)inphpenhancesCodeFlexibility andTestability by decouplingClassesscyclasses fromtheippentencies.1)UseConstructorientoctionTopAssDopassDectiesViactructors Viactructors

推荐Pimple用于简单项目,Symfony的DependencyInjection用于复杂项目。1)Pimple适合小型项目,因其简单和灵活。2)Symfony的DependencyInjection适合大型项目,因其功能强大。选择时需考虑项目规模、性能需求和学习曲线。

依赖性注射(DI)InphpisadesignpatternwhereClassDepentenciesArepassedtotosedTosedTosedTotratherThancReateDinterally,增强codemodemodularityAndTestabily.itimprovessoftwarequalitybyby By:1)增强tosestabilityTestabilityTestabilityThroughityThroughEasyDepentyDepententymydependentymocking,2)增强Flexibilybya


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1
好用且免费的代码编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境