Klone
Klone

Reputation: 83

Writing a string array to text file separated by new line character

I have a PHP page which accepts input from user in a text area. Multiple strings are accepted as input from user & would contain '\n' and I am scanning it as:

$data = explode("\n", $_GET['TxtareaInput']);

Each string should be moved into the text file with new line character separation. This is the code I am using now and it separates each string with a '^M' character:

foreach($data as $value){
    fwrite($ourFileHandle, $value);
}

Is there anyway I can get each string followed by a carriage return?

Upvotes: 6

Views: 28535

Answers (3)

Jocelyn
Jocelyn

Reputation: 11393

If you want to add new lines, then why are you first removing them?

$data = explode("\n", $_GET['TxtareaInput']);

Keep only this line:

fwrite($ourFileHandle, $data);

It will write your data to the file as it was received.

If you want to replace all new lines by carriage returns before writing to file, use this code:

    fwrite($ourFileHandle, str_replace("\n", "\r", $data));

Upvotes: 1

raidenace
raidenace

Reputation: 12826

Try this:

$data = explode("\n", $_GET['TxtareaInput']);
foreach($data as $value){
    fwrite($ourFileHandle, $value.PHP_EOL);
}

Upvotes: 2

madflow
madflow

Reputation: 8490

You can simply write it back using implode:

file_put_contents('file.csv', implode(PHP_EOL, $data));

Upvotes: 63

Related Questions