解決済み

【PHP】テキストファイル内の数字に加算する方法

  • すぐに回答を!
  • 質問No.9141125
  • 閲覧数98
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 0% (0/1993)

PHPでカウンターを作ってみたんですが、たまに数字が勝手にリセットされて困っています。

$aa = file_get_contents("aa.txt");
$aa = $aa + 1;
$aaTX = fopen("aa.txt", "w+");
fwrite($aaTX , $aa);
fclose($aaTX );

という形にしてるんですが、おそらく複数の閲覧者が同時にアクセスしたときに、fopen("aa.txt", "w+")で真っ白になってるものをfile_get_contentsで読み込んでしまい、リセットされた形になってしまうのかなと。

これ、fopenを使わず、aa.txt内の数字に直接加算させる方法とかないのでしょうか?

fopenはすでに記されているものの前後に文字列を加えるというようなことはできるようですが、書かれている数字に加算したり減算したりはできませんよね?

他に直接計算することができるような命令とかありますか?

せめて、このリセットが防げるような方法だけでもあれば助かるのですが…。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 44% (4256/9598)

他カテゴリのカテゴリマスター
$aaTX = @fopen("aa.txt", "r+" );
@flock($aaTX,LOCK_EX);
$aa = fgets( $aaTX, 10 );
$aa++;
rewind( $aaTX );
fputs( $aaTX, $aa );
flock($aaTX,LOCK_UN);
fclose( $aaTX );

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 47% (397/834)

概ねANo.1の通りで良いのですが、flockの直前にfflushも必要です。

PHP: flock - Manual
http://php.net/manual/ja/function.flock.php
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ