スレッド表示 | フラット表示〕 全トピック 920 件中 893 番目 次≫ ≪前

ファイルサイズの丸め

created: 2003-03-12 16:57 | modified: 2003-03-13 14:46 | reply: 3

[187] ファイルサイズの丸め

user: Yagi ホームページ | created: 2003-03-12 16:57
PHPでいろいろなスクリプトを作っていて
疑問に思ったのですが、PHPにはPerlの
truncate関数のようなファイルサイズを丸める
関数はあるのでしょうか?

今のところ読み込みと書き込みファイルを別
にしてログを編集/削除しているのでそのよう
な関数の必要に迫られたことがありませんが、
どうなのでしょうか?
reply: 188 返信 編集 削除

[188] あったあった

user: yagi ホームページ | created: 2003-03-13 10:16
自分で問題を投げかけておいて自分でちょっと解決しました。
PHPにはftruncate関数なるものが存在しました。
ただ、これは第2パラメタに丸めるサイズを指定するみたいでポインタ指定はできないもよう。となると、ログの一部分を削除した時点でのサイズを取得して丸めるということになるのでしょうか。

みなさんはどう思われますか?
Parent: 187  reply: 189 返信 編集 削除

[189] ftruncate($fp, ftell($fp))って感じで・・・

user: ゆうじ | created: 2003-03-13 12:43
truncateが何者かわからず、
じっと眺めてて返事が遅くなりました。

ftruncate関数なるものをはじめて知り、チョット調べてみました。
ftell関数でファイルポインタの現在位置がわかるので、
読み書きしたところまでのサイズで丸めるのならば、

ftruncate($fp, ftell($fp));

って感じで出来そうですね。(まだ試せてません)
Parent: 188  reply: 190 返信 編集 削除

[190] うまくいきましたよ

user: Yagi ホームページ | created: 2003-03-13 14:46
ftruncate関数とftell関数でうまくいきました。とあるPHP関連書籍には、

「ftruncateの第2パラメタにはファイルサイズを指定する」

と書いてあったものですから、
てっきり丸める前までのファイルサイズを
取得する必要でもあるのかと思いましたが、
Perlと全く同じように処理できました。

これで、読み込んで処理した後、戻してかき込むというやり方がわかりました。でも、このログ更新方法はログサイズが大きい場合にはよくない方法ですけど(実行速度と空間効率面で)。
Parent: 189  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 893 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑