a +和r +之间的错误取代了行

时间:2013-11-07 20:51:58

标签: php

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

当我决定添加\ n(添加新行)时。它也只会替换新行,所以没有必要添加\ n或\ r \ n。看看你的代码

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

任何想法我可能在做什么?

1 个答案:

答案 0 :(得分:1)

请参阅http://us3.php.net/manual/en/function.fopen.php上的文档,具体来说:

  

'r +'开放阅读和写作;将文件指针放在文件的开头

  

'a +'开放阅读和写作;将文件指针放在文件的 end 。如果该文件不存在,请尝试创建它。

这告诉你这是标准行为。

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

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