2012-08-07 82 views
5

我有一個CSV我從我沒有的控制和每一行的端部的源下載是PHP刪除Windows^M字符

^M 

字符時打印到一個bash終端。我如何在PHP中以編程方式清理此輸入?

回答

15

你看到的是一個Windows控制字符。爲了擺脫這個在PHP中,你需要做的是 $file = str_ireplace("\x0D", "", $file) 這將工作無論是十六進制是小寫還是大寫。

+0

賓果 - 做了詭計 – nsfyn55 2012-08-07 19:10:05

3

^Mcarriage return,你應該能夠用其刪除:

$string = str_replace("\r", "", $string); 
1

您也可以要求PHP自動讀取CSV文件之前剛剛在這條線將檢測任何奇怪的行尾和你將不需要做其他事情。

ini_set('auto_detect_line_endings', true); 
+0

有效的方法,但沒有爲我工作,這有點奇怪。我最終用linux chars取代了win:preg_replace('〜\ r \ n?〜',「\ n」,$ string); – 2018-02-02 12:50:21

+0

好吧,我認爲你可能有一個不同的操作系統來挖掘。我使用的是Mac,所以它可能不適用於所有操作系統。如你所說,這很奇怪。 – ksoni 2018-02-03 09:40:14