2

用户在我的网站上提交的数据文件格式如下:

Text text text text text
text texttext text text
text text text text 

text text text text text 
text text text text 
text text text 

在开发我的 php 脚本来读取这些文件时,我会在使用分隔符后对文件进行爆炸()file_get_contents,该分隔符\n\n将从上面的示例中创建一个数组。

但是现在我正在过渡到一个实时站点,并且正在开发提交文件的表单,这种爆炸技术不再有效。

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

当我echo $row[0]返回整个上传的文件时,而不仅仅是第一段。$rows[1] 为空。为什么没有爆炸在这里工作?

4

2 回答 2

3

尝试规范化行尾:

$c = file_get_contents($file);
$c = str_replace(array("\r\n", "\n\r"), array("\n", "\n"), $c);
$rows = explode("\n\n", $c);
于 2012-09-06T08:11:59.320 回答
0

这是由于本地开发机器和实时机器之间的换行符不同。在目标机器上使用正确的新行。

于 2012-09-06T08:10:38.327 回答