0

PHPカウンターに問題があります。| で区切られた 2 つの変数をカウントする必要がありますが、カウンターはしばしば にリセットされ|1ます。すでにそのflock機能を使用していますが、まだ機能しません。さらに、変数の値が増加しない場合もあります。

numeri.txt (カウンター):

5098|561307

これは PHP スクリプトです。

$filename="numeri.txt";
$contents=file_get_contents($filename);
$fp=fopen($filename,'a');
if(!flock($fp,LOCK_EX))
{
    while(true)
    {
        usleep(100000);
        if(flock($fp,LOCK_EX))
        {
            break;
        }
    }
}
ftruncate($fp,0);
$contents=explode("|",$contents);
$clicks=$contents[0];
$impressions=$contents[1]+1;
fwrite($fp,$clicks."|".$impressions);
flock($fp,LOCK_UN);
fclose($fp);

コードを修正するには?

4

1 に答える 1

2

出力が "|1" にリセットされる場合は、$contents 変数が有効に設定されていません。

$contents 変数も毎回書き込んでみてください。出力が "|1" である場合の内容を確認できます。

$contents が問題だと思いますが、その変数が最初に設定される場所を示していません。

于 2013-04-16T17:37:34.073 に答える