2011-05-13 27 views
6

我想在我的網站上創建CSV文件導入程序。我希望用戶選擇分隔符。將特殊字符(如' t')轉換爲「 t」(一個真正的選項卡)

問題是,當表單提交時,分隔符字段被存儲爲'\ t',所以當我解析文件時,我搜索字符串'\ t'而不是真正的TAB。它與每個特殊字符(如\ r,\ n等)做同樣的事情...

我想知道用於將這些字符轉換爲其真實表示的方式或函數,而不使用像這樣的數組:

  • 'T'=> 「\ t」 的
  • 'R'=> 「\ r」
  • ...

回答

6

你或許應該決定什麼特殊的字符,你會允許和創建這樣一個功能:

function translate_quoted($string) { 
    $search = array("\\t", "\\n", "\\r"); 
    $replace = array("\t", "\n", "\r"); 
    return str_replace($search, $replace, $string); 
} 
0

does not看起來像這樣離開引號的標籤,但在任何一個墊子中掛鉤一次,然後複製成引號應該可以工作。

$data = str_replace("\t", " ", $data); 
+1

HTML實體對HTML很好,但是如果將其複製粘貼到純文本文件中,那麼這不會造成問題? – drudge 2011-05-13 19:29:01

+0

啊,是的。用於處理HTML有點多我想。 – 2011-05-13 19:31:22

1

這看起來像單VS雙引號:

$str = strtr($str, '\t\n\r', "\t\n\r");