【问题标题】:PHP uploaded text file line breaks issuePHP上传的文本文件换行问题
【发布时间】:2011-11-30 03:23:22
【问题描述】:

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

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

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

我正在使用 `file_get_contents($_FILES['file']['tmp_name'])' 打开文件

谢谢。

【问题讨论】:

  • 使用<pre>(filecontents)</pre> 对你有用吗?

标签: php post text-files line-breaks


【解决方案1】:

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

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

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

【讨论】:

  • 实际上效果很好,最终我需要按行分隔然后遍历所有行。谢谢!
【解决方案2】:

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

 <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];

【讨论】:

    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多