Reputation: 83
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
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
Reputation: 12826
Try this:
$data = explode("\n", $_GET['TxtareaInput']);
foreach($data as $value){
fwrite($ourFileHandle, $value.PHP_EOL);
}
Upvotes: 2
Reputation: 8490
You can simply write it back using implode:
file_put_contents('file.csv', implode(PHP_EOL, $data));
Upvotes: 63