2015-03-14 2 views
-1

Я начал изучать PHP на этой неделе и вам нужно добавить запятую в конец каждой строки текстового файла. Я не знаю, с чего начать. Что мне делать после загрузки файла? Я не могу найти какой-либо учебник, говорящий, как писать в конец каждой строки только начало файла или конец? Можно ли указать конец каждой строки?Добавить запятую в конец каждой строки в текстовом файле PHP

То, что я до сих пор:

fopen("file.txt",a) 
???? 

Я использую «а», потому что я хочу, чтобы сохранить данные.

+0

a = append, w = write и r = read. Не все теги в php-скрипте должны быть добавлены запятой: D там есть сотни google-lib вне этого. –

+0

Термин называется конкатенацией. Используйте его в 'foreach' или в конце каждой написанной строки. –

+1

да, это хороший уик-энд, чтобы начать учиться, как я давно сделал –

ответ

3

Это должно работать для вас:

(здесь я просто получить все файловые линии с file() Затем я иду через каждую строку с array_map() и сцепить запятую в конце После этого я сохранить файл с новым.. содержание с file_put_contents())

<?php 

    $lines = file("test.txt", FILE_IGNORE_NEW_LINES); 
    $lines = array_map(function($v){return $v . "," . PHP_EOL;}, $lines); 
    file_put_contents("test.txt", $lines); 

?> 

Пример файла:

a 
a 
a 

после сценария:

a, 
a, 
a, 

EDIT:

Если вы не хотите, чтобы добавить запятую в пустой строке просто добавить условие, чтобы проверить, если строка пуста или не нравится:

<?php 

    $lines = file("test.txt", FILE_IGNORE_NEW_LINES); 
    $lines = array_map(function($v){return $v . (empty($v)?"":",") . PHP_EOL;}, $lines); 
    file_put_contents("test.txt", $lines); 

?> 
+0

Пожалуйста, объясните downvote, чтобы я мог учиться на нем! – Rizier123

+0

он ничего не просил, но может ли использовать каждую линию? –

+0

@don Я действительно не понимаю, что вы имеете в виду с этим комментарием ^? – Rizier123

0

Вы хотите заменить все EOL на определенный символ?

$EOLChar=","; 
$myFile = fopen("file.txt", "r") ; 
$newFile=""; 
while(!feof($myFile)) { 
    $newFile.= str_replace(PHP_EOL, $EOLChar, fgets($myFile)); 
} 
fclose($myFile); 
file_put_contents("file.txt", $newFile); 
+0

С этим вы дважды открываете файл, потому что 'file_put_contents()' подобен: 'fopen(), fwrite(), fclose()'. Таким образом, вы можете открыть файл в 'r +' через каждую строку и напрямую записать в файл с помощью 'fwrite()' – Rizier123

+0

@ Rizier123 Yaa будет более эффективным способом сделать это. – Shubanker

Смежные вопросы