2012-02-20 7 views
0

私は単一の番号を含むファイルを持っています。その番号を読んだり、他のいくつかのステートメントを実行したり、その番号を新しいもので上書きしたりして、最後にファイルを閉じることができるように、私はそれを開きたいと思います。ファイルを読み書きして、前のコンテンツを上書きするにはどうすればいいですか? (PHP)

$file = fopen("last.txt","r+"); 
$firstNumber = fgets($file); 
rewind($file); 
... 
fwrite($file,$secondNumber); 
fclose($file); 

上記のコードは、単に以前の後に第2の番号を付加されたしかし、:ここで

は、私がこれまで試したものです。

これを回避する方法を知っている人はいますか?

+0

私にとってはうまく動作します。書き込み中に '$ secondNumber'に正しいデータがあるかどうかチェックし、あなたのリソースがシーク可能であるかどうかを確認してください。 – Timur

+0

私のローカルマシンでも正常に動作しますが、何らかの理由でサーバ上で動作しません。 –

+0

http://www.php.net/manual/en/function.ftell.phpとhttp://で確認してくださいもしリソースがシーク可能ならば、php.net/manual/en/function.stream-get-meta-data.php。モジュール/ファイルシステムの制限に関するいくつかの問題があります。 – Timur

答えて

2

この、

$firstNumber=file_get_contents("last.txt"); 
file_put_contents("last.txt",$secondNumber); 
最も簡単な方法を試してみてください0
0

なぜファイルを読んでいないのですか?それを削除して、ドロップしたファイルと同じファイル名で新しいファイルを作成してみませんか?

+0

これは私が考慮しなかったオプションなので、ありがとう。それでも、それを閉じることなく上書きする方法がなければなりませんか? –

+0

@domこの単純な操作には多すぎます。 – Timur

0

データのロードデータを操作

$data = file_get_contents($file); 

$data = 'newsomething'; 

セーブデータ

$fh = fopen($file, 'w') or die("can't open file"); 
fwrite($fh, $data); 
fclose($fh); 

//Or like Akhil Thayyil said 
file_put_contents($file,$data); 
関連する問題