PHP上传的文本文件换行问题

时间:2011-11-30 03:23:22

标签: php post text-files line-breaks

我正在编写一个简单的脚本,它会将一个txt文件发布到它,然后显示文件内容。但是,我遇到了保留换行符的问题。

它是用Windows记事本保存的,我想为每个换行符添加CR LF,然后通过PHP表单上传。我可以回显整个文件内容,但我需要一种方法将数据拆分成新行。

我已经尝试过echo str_replace(array("\r\n", "\r", "\n"), '<br />', $file);nl2br($file)。两者都没有。

我用'file_get_contents($ _ FILES ['file'] ['tmp_name'])'

打开文件

感谢。

2 个答案:

答案 0 :(得分:2)

您是否考虑过使用PHP中的file()函数将文件读入数组?

http://php.net/manual/en/function.file.php

然后您可以根据需要输出,但每行都将在数组的单个元素中。

答案 1 :(得分:0)

对我来说更快的方法是复制粘贴任何文本或Excel或HTML表格类型或换行类型的数据并将其粘贴到textarea而不是inputextbox:

 <textarea  id="txtArea" name="txtArea" rows="40" cols="170"></textarea>
 <br>
 <input type="submit" value="split lines into array" /> 
表单接收文件中的

 $txtArea ='';  
 $txtArea = $_POST['txtArea'];  
 $TA = $_POST['txtArea'];  
 $string = $TA;  
 $array = preg_split ('/$\R?^/m', $string); 
// or any of these: 
// $array = explode(PHP_EOL,$string);  
// $array = explode("\n", $txtArea); 
 echo "<br>A0: ".$array[0];
 echo "<br>A1: ".@$array[1];
 echo "<br>A2: ".@$array[2];