在進行網(wǎng)站開發(fā)的過程中,我們經(jīng)常會遇到處理字符串的情況,而且經(jīng)常需要進行全角轉半角的操作。在PHP中,我們可以使用很多方法來實現(xiàn)這個功能,下面就具體介紹一下該如何進行全角轉半角。
首先,我們來看一下全角和半角的概念:
·半角字符是指ASCII編碼表中的可見字符,包括數(shù)字、字母、符號等等,其編碼范圍為0x20-0x7e。 ·全角字符是指一個字符占兩個半角字符位置的字符,通常是中文字符,其編碼范圍為0xA1-0xFE。
全角轉半角的主要操作就是將全角字符轉換成半角字符,將占用兩個字符位置的中文字符轉換成單個字符。下面是一段PHP函數(shù),可以將字符串中的全角字符轉換成半角字符:
//將字符串中的全角字符轉換成半角字符 function convertSBCtoDBC($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); }
這段代碼中使用了PHP函數(shù)strtr(),可以進行字符串替換。
下面是另一種簡單的方法,可以將字符串中的全角字符轉換成半角字符:
//將字符串中的全角字符轉換成半角字符 function convertSBCtoDBC($str){ for($i=0;$i<strlen($str);$i++){ $c = ord($str[$i]); if($c == 0x3000){ $str[$i] = ' '; }elseif($c > 0xFF00 && $c < 0xFF5F){ $str[$i] = chr($c - 0xfee0); } } return $str; }
這段代碼中,使用了PHP函數(shù)ord()和chr(),可以將字符串中的字符轉換成ASCII碼值和相應的字符。
總之,全角轉半角是網(wǎng)站開發(fā)中比較常用的字符串處理操作,PHP提供了很多實現(xiàn)的方法,可以根據(jù)具體情況選擇使用哪一種方法。
上一篇php 入數(shù)組
下一篇css文字點擊字體放大