【PHP】ftruncateでファイルの中身を上書きするには?

php

たまたま、ファイルの中身を別のファイルに書き換えるというか上書きするようなことをPHPでやろうと思っていたので、その作業をメモ。

ftruncate関数とは?

ftruncate関数というのがPHPにあるのですが、指定した長さにまるめるという関数になります。

fopenで開いたファイルポインタhandleを引数とし、 第2引数にファイルを指定したサイズに丸めます。

返り値

返り値は、成功時はTRUE、失敗時にFALSEを返します。

注意点

指定したサイズに丸め込んだ後は、ファイルポインタは変更されません。

ファイルを上書きしたい場合は?

ftruncate関数を利用してファイルの中身を空にするには、長さを0に指定すればいいという事になります。

そして別の内容を書き込むような完全な上書きをしたいとき、、ftruncateをした後でfseekやrewind使ってファイルポインタを先頭に戻してあげれば良いかと。