使用php从文本文件中删除换行符

时间:2012-03-29 13:24:37

标签: php newline text-files

我有txt文件,其内容如下

Hello  
World   
John  
play  
football  

我想在阅读此文本文件时删除新行字符,但我不知道它是什么样子的 文件.txt及其编码为utf-8

4 个答案:

答案 0 :(得分:12)

只需使用带有file标记的FILE_IGNORE_NEW_LINES函数。

file读取整个文件并返回包含所有文件行的数组。

默认情况下,每一行都包含新行字符,但我们可以通过FILE_IGNORE_NEW_LINES标记强制修剪。

所以它将是简单的:

$lines = file('file.txt', FILE_IGNORE_NEW_LINES);

结果应为:

var_dump($lines);
array(5) {
    [0] => string(5) "Hello"
    [1] => string(5) "World"
    [2] => string(4) "John"
    [3] => string(4) "play"
    [4] => string(8) "football"
}

答案 1 :(得分:10)

有不同类型的换行符。这将删除$string中的所有3种:

$string = str_replace(array("\r", "\n"), '', $string)

答案 2 :(得分:4)

如果您要将线条放入数组中,假设文件大小合理,您可以尝试这样的方法。

$file = 'newline.txt';      
$data = file_get_contents($file);   
$lines = explode(PHP_EOL, $data);  

/** Output would look like this

Array
(
    [0] => Hello  
    [1] => World   
    [2] => John  
    [3] => play  
    [4] => football  
)

*/

答案 3 :(得分:0)

我注意到它在问题中的粘贴方式,这个文本文件在每一行的末尾都有空格字符。我认为这是偶然的。

<?php

// Ooen the file
$fh = fopen("file.txt", "r");

// Whitespace between words (this can be blank, or anything you want)
$divider = " ";

// Read each line from the file, adding it to an output string
$output = "";
while ($line = fgets($fh, 40)) {
  $output .= $divider . trim($line);
}
fclose($fh);

// Trim off opening divider
$output=substr($output,1);

// Print our result
print $output . "\n";