3

嗨,我正在尝试创建一些代码,首先读取文件的现有内容,然后在新行上添加新的代码行,但我正在使用的代码只是将新文本添加到已经存在的行上新线的...

这是我正在使用的代码:

<?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);
?>

我尝试了一系列不同的想法,但没有任何效果,任何帮助将不胜感激。

4

3 回答 3

9

每个操作系统的行尾

Unix / Linux
\n

DOS/视窗
\r\n

无效
\r\n\r


常量的值PHP_EOL取决于运行 php 的平台。
不会检测当前文件中的行尾或任何神奇的东西。

于 2010-06-13T09:28:49.813 回答
4

而不是附加\n,连接常数,该常数PHP_EOL始终是当前平台的正确换行符。

您用来打开文本文件的程序也可能存在问题。例如,Windows 上的记事本无法理解 unix 样式的换行符。

于 2010-06-13T08:40:21.027 回答
0

我遇到了同样的问题。您使用什么应用程序来读取文件?我发现由于某种原因记事本(我对 .txt 文件的默认设置)无法识别“\n\r”转义字符。我使用 Notepad++、Atom(我选择的文本编辑器)或在浏览器中打开了我正在写入的 .txt 文件,它们都显示了换行符。

于 2017-02-08T17:14:41.457 回答