0

好的,所以当我使用 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);

知道我可能在做什么吗?

4

1 回答 1

1

请参阅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);
于 2013-11-07T20:57:30.417 回答