Skip to main content

PHP 英數字、空白全半形轉換

PHP 裡面有一個英數字全半形互換的函式,這個函式在中文圈內似乎不太為人所知,但在日文世界裡卻廣泛被使用,mb_convert_kana()

mb_convert_kana() 看名字會覺得是一個處理 kana(假名) 的函式,但透過傳入不同的引數,其實可以指定是要進行全形轉半形或是半形轉全形的處理。

Syntax

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

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

全形轉半形

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

全形字母→半形字母

$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';
$hstr = mb_convert_kana($str, 'r');
echo $hstr;
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890

全形數字→半形數字

$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';  
$hstr = mb_convert_kana($str, 'n');
echo $hstr;
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890

全形空白→半形空白

$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';  
$hstr = mb_convert_kana($str, 's');
echo $hstr;
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890

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

$str = 'ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890';  
$hstr = mb_convert_kana($str, 'as');
echo $hstr;
// ABCDEFGHIJKLMNOPQUETUVWXYZ 1234567890

半形轉全形

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

半形英字→全形英字

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'R');
echo $fstr;
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890

半形數字→全形數字

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'N');
echo $fstr;
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890

半形空白→全形空白

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'S');
echo $fstr;
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890

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

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';  
$fstr = mb_convert_kana($str , 'AS');
echo $fstr;
// ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890