2011-09-26 14 views
29

私はfopenを使用しようとしましたが、ファイルの最後にコンテンツを追加することしかできませんでした。 PHPですべてのコンテンツを新しいコンテンツで上書きすることは可能ですか?PHPのファイルコンテンツを新しいコンテンツで上書きするにはどうしたらいいですか?

+0

行わされるまでちょうど削除コマンドを保持することであるあなたが事故に「」モードを使用するような音。 'w'モードを使用していることを確認してください:*書き込み専用に開く。ファイルポインタをファイルの先頭に置き、ファイルをゼロ長に切り捨てます。ファイルが存在しない場合は作成してください。* – animuson

答えて

56

使用file_put_contents()

また
file_put_contents('file.txt', 'bar'); 
echo file_get_contents('file.txt'); // bar 
file_put_contents('file.txt', 'foo'); 
echo file_get_contents('file.txt'); // foo 

あなたがfopen()で立ち往生している場合、あなたはww+モードを使用することができます。

オープン 'W' だけ書き込むため。ファイルポインタをファイルの先頭に置き、ファイルをゼロ長に切り捨てます。ファイルが存在しない場合は、作成してください。

'w +'読み書き用に開く。ファイルポインタをファイルの先頭に置き、ファイルをゼロ長に切り捨てます。ファイルが存在しない場合は、作成してください。また、あなたのサーバーの完全な制御を持っている場合、なぜ「保証」は、操作の前に、ファイルを削除することで、それを周りいじるない

+5

多くの場合、 'fopen'は適切なツールです。 'file_put_contents'と' file_get_contents'は大きな文字列に対して誤用されることが多く、パフォーマンスが低下します。 –

+6

file_put_contentsは私の既存のコンテンツを上書きしません。最後に追加するだけです。 – dlofrodloh

1
$fname = "database.php"; 
$fhandle = fopen($fname,"r"); 
$content = fread($fhandle,filesize($fname)); 
$content = str_replace("192.168.1.198", "localhost", $content); 

$fhandle = fopen($fname,"w"); 
fwrite($fhandle,$content); 
fclose($fhandle); 
+5

これは疑問に答えることができますが、このコードがどのように役立つかについていくつかの説明をすることをお勧めします。 – vard

1

$wait=exec('rm -r -f myfile.txt'); 
file_put_contents('myfile.txt','new content'); 

は$ここを待って、それが

関連する問題