PHP 英數字、空白全半形轉換
PHP 裡面有一個英數字全半形互換的函式,這個函式在中文圈內似乎不太為人所知,但在日文世界裡卻廣泛被使用,mb_convert_kana()
mb_convert_kana() 看名字會覺得是一個處理 kana(假名) 的函式,但透過傳入不同的引數,其實可以指定是要進行全形轉半形或是半形轉全形的處理。

Syntax

1
mb_convert_kana ( string $string , string $mode = "KV" , string|null $encoding = null ) : string  

第一個引數是要傳入的 string ,第二個引數是指令轉換模式的代碼,第三個引數則是指定編碼的可選引述。

全形轉半形

mode code 說明
r 將全形英文字轉為半形英文字
n 將全形數字轉為半形數字
a 將全形英數字轉為半形英數字
s 將全形空白轉為半形空白

全形字母→半形字母

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';  
$hstr = mb_convert_kana($str, 'r');  
echo $hstr;  
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890  

全形數字→半形數字

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';  
$hstr = mb_convert_kana($str, 'n');  
echo $hstr;  
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890  

全形空白→半形空白

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';  
$hstr = mb_convert_kana($str, 's');  
echo $hstr;  
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890  

全形英數字空白→半形英數字空白

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';  
$hstr = mb_convert_kana($str, 'as');  
echo $hstr;  
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890  

半形轉全形

mode code 說明
R 將半形英文字轉為全形英文字
N 將半形數字轉為全形數字
A 將半形英數字轉為全形英數字
S 將半形空白轉為全形空白

半形英字→全形英字

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'R');  
echo $fstr;  
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890  

半形數字→全形數字

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'N');  
echo $fstr;  
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890  

半形空白→全形空白

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'S');  
echo $fstr;  
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890  

半形英數字空白→全形英數字空白

1
2
3
4
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'AS');  
echo $fstr;  
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890  

資料來源與日文全半形假名轉換的應用請見參考資料:
PHP: mb_convert_kana - Manual
有疑問或指教或感想歡迎在下方留言提出。感謝閱讀。