微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP实现全角字符转为半角方法汇总

PHP实现全角字符转为半角方法汇总》要点:
本文介绍了PHP实现全角字符转为半角方法汇总,希望对您有用。如果有疑问,可以联系我们。

PHP编程最简单的办法

PHP编程
<?PHP  
$str = "0123ABCDFWS\",.?<>{}[]*&^%#@!~()+-|:;";  
echo "$str";  
echo "<br />";  
$str = preg_replace('/\xa3([\xa1-\xfe])/e','chr(ord(\1)-0x80)',$str);  
echo $str;

PHP编程这是网上看来的代码,所有的中文标点的第二个字节减去0X80(即128)所得的数字便是半角所得的数字了.而/e模式表达的是:如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串.

PHP编程在非UTF-8模式下这个函数是可行的,但是UTF-8下 这个办法就似乎无效,

PHP编程办法二:

PHP编程
$queue = 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');
echo preg_replace_callback("/([\xEF][\xBC][\x90-\x99]|[\xEF][\xBD][\x81-\x9A\xA1-\xBA])/",'next_fchar','0');
function next_fchar($matches){
 global $queue;
 return $queue[$matches[1]];
}

PHP编程办法三:

PHP编程
/**
* 字符串半角和全角间相互转换
* @param string $str 待转换的字符串
* @param int  $type TODBC:转换为半角;TOSBC,转换为全角
* @return string 返回转换后的字符串
*/
function convertStrType($str,$type) {
    $dbc = array( 
      '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','-',' ',':','.',','/','%','#','!','@','&','(',')','<','>','"',''','?','[',']','{','}','\','|','+','=','_','^','¥',' ̄','`'
);
    $sbc = array( //半角
      '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','-',' ',':','.','/','%',' #','@','&','<','>','"','\'','[',']','{','}','\\','|','+','=','_','^','~','`'
);
if($type == 'TODBC'){
return str_replace( $sbc,$dbc,$str ); //半角到全角
}elseif($type == 'TOSBC'){
return str_replace( $dbc,$sbc,$str ); //全角到半角
}else{
return $str;
}
}

PHP编程办法四:

PHP编程
/**
* 将一个字串中含有全角的数字字符、字母、空格或'%+-()'字符转换为相应半角字符
*
* @access public
* @param string $str 待转换字串
*
* @return string $str 处理后字串
*/
function make_semiangle($str)
{
$arr = array('0' => '0','z' => 'z','(' => '(',')' => ')','〔' => '[','〕' => ']','【' => '[','】' => ']','〖' => '[','〗' => ']','“' => '[','”' => ']','‘' => '[',''' => ']','{' => '{','}' => '}','《' => '<','》' => '>','%' => '%','+' => '+','―' => '-','-' => '-','~' => '-',':' => ':','.' => '.','、' => ',' => '.','、' => '.',';' => ','?' => '?','!' => '!','…' => '-','‖' => '|','”' => '"',''' => '`','‘' => '`','|' => '|','〃' => '"',' ' => ' ');
return strtr($str,$arr);
}

PHP编程全角与半角之区别(来自中文维基百科)

PHP编程全角,又称全形、全宽,是电脑字符的一种格式,字面意思是比普通字符(或半角字符)宽的字符.

PHP编程传统上,英语或拉丁字母语言使用一字节的空间来存储,而汉字、日语等常使用两字节存储,在使用固定宽度文字的地方,为了使字体看起来整齐,英文字母、数字及其他符号,也由本来只占用一个字空间,改为一概占用两个字的空间来显示,并且使用两个字节来存储.

PHP编程以上所述便是本文的全部内容了,希望大家能够喜欢.

编程之家培训学院每天发布《PHP实现全角字符转为半角方法汇总》等实战技能,PHPMysqL、LINUX、APP、JS,CSS全面培养人才。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐