※ ChatGPTを利用し、要約された質問です(原文:phpである処理をすると数を1足して、ある処理をするとその数字から1引)
PHPで数を操作する方法
このQ&Aのポイント
PHPで数を1足していく処理と1引いていく処理を実装したいが上手くいかない。
数を1足す処理ではファイルを読み込み、数を1増やして保存する。
数を1引く処理ではファイルを読み込み、数が0でない場合に1減らして保存する。
phpである処理をすると数を1足して、ある処理をするとその数字から1引
phpである処理をすると数を1足して、ある処理をするとその数字から1引くような事をしたいのですが、上手くいきません。(まれに数字にずれが生じてしまいます。)
1足していくもの
$fp = fopen("./data/registry/buy.dat","r+");
$registry_count = fgets($fp,1024);
if($registry_count == ""){
$registry_count = 0;
}
$registry_count++;
flock($fp,LOCK_EX);
fseek($fp,0);
fputs($fp,$registry_count);
flock($fp,LOCK_UN);
fclose($fp);
1引いていくもの
$fp = fopen("./data/registry/buy.dat","r+");
$registry_count = fgets($fp,1024);
if($registry_count != "0"){
$registry_count--;
}
flock($fp,LOCK_EX);
fseek($fp,0);
ftruncate($fp,0);
fputs($fp,$registry_count);
flock($fp,LOCK_UN);
fclose($fp);
どなたかご教授ください。
よろしくお願いいたします。
お礼
ご指摘の点を修正して多分、問題なく動作いたしました。 ありがとうございます。
補足
早速ご回答ありがとうございます。 ご指摘の通り、flock関数の使い方が間違っていました。 原因として考えられるのはflock以外に 何かあればご指導のほどよろしくお願いいたします。