網頁

2013年11月25日

[php] 如何拆解(分割)含有tab符號的字串

相信會需要處理到tab符號的資料,應該都是外部的文字檔資料,因為在網頁的輸入框按tab鍵時,預設動作是游標跳移,因此基本上是無法輸入含有tab符號的資料。

正常的文字檔資料交換格式,固定都使用換行(\n)符號做每筆資料的分隔,而欄位資料會有用逗號、空白或tab符號做為分隔,最能正確分割的是tab符號,而逗號或空白有可能出現在資料字串內,在做欄位分割時,會比較有機會出錯。


程式範例:
$str = "沖    送
叫  C A B";
//使用換行符號拆行
$row = explode("\n", $str);
$col = array();
foreach ($row as $n => $r){
    //使用tab符號拆欄
    $col[$n] = explode("\t", $r);
}
//輸出陣列
print_r($col);

輸出結果:
Array
(
    [0] => Array
        (
            [0] => 沖
            [1] => 脫
            [2] => 泡
            [3] => 蓋
            [4] => 送
        )
    [1] => Array
        (
            [0] => 叫
            [1] => 叫
            [2] => C
            [3] => A
            [4] => B
        )
)

注意說明:

  • 以個人經驗不建議使用「\r\n」符號來分割每行資料,主要是換行有「\r\n」及「\n」這兩種方式,在相容性考量下,建議使用「\n」這個方式來處理。
  • 常遇到的控制字元有:
    \r - 回車
    \n - 換行
    \t - tab
    \0(零) - NULL