补间错误 a+ 和 r+ 替换行


Somthing wrong btween the a+ and the r+ replaces lines

好的 所以当我使用 a+ 时一切正常,创建新行并编写代码,但当我使用 r+ 时,它会替换第一行而不是创建新行。 如何在不替换的情况下添加行?

当我决定添加'

(添加新行)时,它也只会替换新行,因此添加'或''r'是没有意义的。 看看你的代码

$demo = $_POST['demo'];
$text = $_POST['text ']; 
$name = $_POST['name'];
$address = $_POST['address'];

$fp = fopen('../../include/item.accessory.php', 'r+') or exit("Unable to open file!");
 fseek($fp, 0, SEEK_SET); //MOVES THE CURSOR 0 PLACES FROM START OF THE FILE
 fwrite($fp, $_POST["demo"]);
 fwrite($fp, $_POST["text"]);   
     fwrite($fp, $_POST["name"]);    
     fwrite($fp, $_POST["address"]);    
fclose($fp);

知道我可能会做什么吗?

请参阅 http://us3.php.net/manual/en/function.fopen.php 的文档,特别是:

"r+"打开以进行读取和写入;将文件指针放在文件的开头

"a+"打开以进行读取和写入;将文件指针放在文件的末尾。如果该文件不存在,请尝试创建它。

这告诉您这是标准行为。

如果您希望在文件开头添加内容,请执行以下操作:

$content = $newcontent.file_get_contents($path_to_file);
file_put_contents($path_to_file, $content);

在您的特定情况下,您可能会执行以下操作:

$newcontent = "$_POST[demo] $_POST[text] $_POST[name] $_POST[address]";
$content = $newcontent.file_get_contents($path_to_file);
file_put_contents($path_to_file, $content);