網頁

2013年2月27日

[php] changeStrType英文、數字、符號,全型、半型轉換

用途:
    英文、數字、符號全型半型轉換。


範例:
    //轉半型
    echo changeStrType("Kill", "half");
    //轉全型
    echo changeStrType("Kill", "full");


結果:
    Kill
    Kill


參數說明:
$str 字串(單一個字或是多個文字)
$type 轉換全型(full)或半型(half)
//全型半型互轉
function changeStrType ($str, $type = 'half')
{
//全型
$full = 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");
//半型
$half = 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"); 
$str = str_split($str);
switch (strtolower($type)){
case "full":
    //轉全型
    $search = $half;
    $replace = $full;
break;
case "half":
    //轉半型
    $search = $full;
    $replace = $half;
break;

$tmp = "";
foreach ($str as $t){
    $tmp .= str_replace($search, $replace, $t);
}
return $tmp;
}
有缺少的全型轉半轉對照字,請自行依數組加入陣列中。