您好我正在尝试创建一些代码,首先读取文件的现有内容,然后在新行上添加新代码行,但我正在使用的代码只是将新文本添加到已经存在的代码中现有行而不是新行...
以下是我正在使用的代码:
<?php
$id = $_GET['id'];
$userfile = "user1.txt";
$fo = fopen($userfile, 'r') or die("can't open favourites file");
$currentdata = fread($fo, filesize($userfile));
fclose($fo);
$fw = fopen($userfile, 'w') or die("can't open favourites file");
$currentprocessed = "$currentdata\n";
fwrite($fw, $currentprocessed);
fwrite($fw, $id);
fclose($fw);
?>
我尝试了一系列不同的想法但没有任何效果,任何帮助都会受到赞赏。
答案 0 :(得分:9)
每个操作系统的行结尾
Unix / Linux
\n
DOS / Windows
\r\n
无效
\r
和\n\r
PHP_EOL
常量的值取决于php正在运行的平台
无法检测当前文件中的行尾或任何魔法。
答案 1 :(得分:3)
不是附加\n
,而是连接常量PHP_EOL
,它始终是当前平台的正确换行符。
这可能也是您用来打开文本文件的程序的问题。例如,Windows上的记事本无法理解unix样式的换行符。
答案 2 :(得分:0)
我遇到了同样的问题。您使用什么应用程序来读取文件?我发现由于某种原因记事本(我的.txt文件的默认值)无法识别“\ n \ r”转义字符。我使用Notepad ++,Atom(我选择的文本编辑器)或者在浏览器中打开了我写的.txt文件,他们都显示了换行符。