アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP初心者です。現在ファイル書き込みについて勉強しています。
アクセスの多いサイトの場合、アクセスカウンターや書き込みなど、重なる場合一体どうするのでしょうか?
検索してみましたが意外とみつかりません。
単純に何度かリトライすればいいのか、それとも他に一般的な方法があるのか気になります。
PHPを理解してる方、常識的な方法をよろしくお願いいたします。

*使用レンタルサーバーはPHP4.4.4です。

A 回答 (3件)

flock関数を使うのが一般的だと思います。


(というか、たぶんDBを使わない場合にはその方法しかありません。)

ただしPHPのflock関数には排他制御したいファイルを直接flockするだけだと完全には排他制御できないようなので、きちんとロックしたい場合にはロック用ファイルを別途用意するなどの工夫が必要です。

参考になりそうなページを挙げておきます。

■PHPオンラインマニュアル - flock関数
http://jp.php.net/manual/ja/function.flock.php

■PHP講座 関数とファイルロック
http://www.sakura-pc.jp/php/02060000.shtml

■PHP:ファイルのロック方法(排他制御)の例
http://www.res-system.com/item/359
    • good
    • 0
この回答へのお礼

http://www.sakura-pc.jp/php/02060000.shtml

これはいいですね!まさにこんなものを探していました。
ダミーディレクトリをフラグ代わりに使うとは。
LOCK_EXはLOCK_UNの前にトラブルがあると誰も書き込みできない最悪の事態が発生する… これも知りませんでした。

ところで
http://www.sakura-pc.jp/php/02060000.shtml
の方法はプロの方の間ではどれくらい一般的なんでしょうか?
定番なのかマニアックなのか知りたいです。
またまたよろしくお願いいたします。

お礼日時:2007/04/26 23:39

ごく一般的な方法だと思います。


ただし業務でPHPを使う人は、ファイルを使わずにDBを使うだろうと思います。
    • good
    • 0
この回答へのお礼

なるほどやっぱ行き着くところはそっちですか!
だんだん常識がわかってきました。
ありがとうございました。

お礼日時:2007/04/28 00:11

がると申します。


そういうときは「ロック」という手法が一般的です。

Googleあたりで、「ファイルロック」「排他処理」または「楽観的ロック」あたりのキーワードで調べてみてください(悲観的ロックは多分普通の方なら必要ないだろうなぁと思ったので外してますが、興味があったら調べてみてください)。

で、わからないところなどあったらまたご質問いただければ ^^
    • good
    • 0
この回答へのお礼

楽観・悲観というのは知りませんでした。
とりあえず排他ロックが基本と思っていましたが・・

お礼日時:2007/04/26 23:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!