удалить символы новой строки из текстового файла с помощью php - PullRequest
9 голосов
/ 29 марта 2012

У меня есть текстовый файл с таким содержимым, как этот

Hello  
World   
John  
play  
football  

Я хочу удалить символ новой строки при чтении этого текстового файла, но я не знаю, как он выглядит как файл .txt и егокодировка utf-8

Ответы [ 4 ]

12 голосов
/ 04 октября 2015

Просто используйте функцию 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"
}
10 голосов
/ 29 марта 2012

Существуют различные виды новых строк.Это удалит все 3 вида в $string:

$string = str_replace(array("\r", "\n"), '', $string)
4 голосов
/ 29 марта 2012

Если вы собираетесь помещать строки в массив, при условии разумного размера файла вы можете попробовать что-то вроде этого.

$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  
)

*/
0 голосов
/ 29 марта 2012

Я отмечаю, что, как это было вставлено в вопросе, этот текстовый файл имеет пробелы в конце каждой строки. Я предполагаю, что это было случайно.

<?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";
...