PHP爆炸与上传文件的换行符

时间:2012-09-06 08:06:16

标签: php

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

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的{​​{1}}之后爆炸()该文件,这将从上面的示例中生成一个数组。

但是现在我正在转换到一个实时网站,并且正在开发提交文件的表单,这种爆炸技术不再适用。

\n\n

当我foreach ($_FILES['file']['tmp_name'] as $file) { $fname = file_get_contents($file); $rows = explode("\n\n", $fname); //do work } 返回整个上传的文件时,而不仅仅是第一段。 $ rows [1]为空。 为什么不爆炸在这里工作?

2 个答案:

答案 0 :(得分:3)

尝试规范化行结尾:

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

答案 1 :(得分:0)

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