2012-09-06 62 views
2

用戶在我的網站提交數據文件的格式爲這打破使用分隔符\n\n,這將從上面的示例中創建一個數組。PHP爆炸線上傳的文件

但現在我正在轉換到一個實時站點,並且正在開發提交該文件的表單,此爆炸技術不再有效。

foreach ($_FILES['file']['tmp_name'] as $file) { 
    $fname = file_get_contents($file); 
    $rows = explode("\n\n", $fname); 
    //do work 
} 

當我echo $row[0]整個上傳的文件返回而不是僅僅是第一款。 $ rows [1]是空的。 爲什麼不在這裏工作?

+8

你確定你的換行​​符是不是CRLF'\ r \ N'?這是一個Windows文件?一個Mac文件?一個nix文件? – Eregrith

+0

@Michael OP想要在數組的兩個部分只分隔兩個「文本」塊 – Eregrith

+1

用十六進制編輯器查看文件,您將立即知道原因。 – Jon

回答

3

去嘗試標準化行結尾:

$c = file_get_contents($file); 
$c = str_replace(array("\r\n", "\n\r"), array("\n", "\n"), $c); 
$rows = explode("\n\n", $c); 
+0

你治好了我的頭痛。謝謝。 – Norse

0

這是由於您的本地開發機器和現場機器之間的新行字符不同。在目標機器上使用正確的新行。