php全角字符转换为半角函数

前端技术 2023/09/06 PHP
之前试过网上找的通过ASCII之类的字符替换,发现很多莫名其妙的问题。最后还是换成下面的字符替换方式了,把目前能找到的所有全角都列出来了一个个替换吧
复制代码 代码如下:

/**
* 全角字符转换为半角
*
* @param string $str
* @return string
*/
public function Sbc2Dbc($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);
}

本文地址:https://www.stayed.cn/item/15061

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。