可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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?
回答1:
Try this:
$data = explode("\n", $_GET['TxtareaInput']); foreach($data as $value){ fwrite($ourFileHandle, $value.PHP_EOL); }
回答2:
You can simply write it back using implode:
file_put_contents('file.csv', implode(PHP_EOL, $data));
回答3:
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));