覆盖服务器上的文件(PHP)

时间:2014-07-08 19:03:25

标签: php fopen fwrite overwrite unlink

我正在制作一个需要能够将文件推送到服务器上的Android应用程序。

为此我使用POSTfopen/fwrite但此方法仅附加到文件并在写入文件之前使用unlink无效。 (file_put_contents具有完全相同的效果)

这是我到目前为止所拥有的

<?php
$fileContent = $_POST['filecontent'];

$relativePath = "/DatabaseFiles/SavedToDoLists/".$_POST['filename'];
$savePath = $_SERVER["DOCUMENT_ROOT"].$relativePath; 

unlink($savePath);

$file = fopen($savePath,"w");
fwrite($file,$fileContent);
fclose($file);

?>

当我不尝试写入文件时,该文件将正确删除它的自我,但是如果我尝试写入它,它将被附加。

有人有任何关于覆盖文件内容的建议吗?

谢谢,卢克。

4 个答案:

答案 0 :(得分:6)

使用wa+打开和截断:

$file = fopen($savePath,"wa+");

fopen

  

w + :开放阅读和写作;将文件指针放在文件的开头,并将文件截断为零长度。如果该文件不存在,请尝试创建它。

     

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

答案 1 :(得分:4)

file_put_contents($savePath,$fileContent);

将覆盖文件或创建(如果尚未存在)。

答案 2 :(得分:1)

阅读本文将有助于显示fopen的所有选项

http://www.php.net/manual/en/function.fopen.php

答案 3 :(得分:0)

发现错误,我忘了重置我的应用程序中的字符串