これは簡単な質問ですが、http: //www.stevedawson.com/scripts/text-counter.php から PHP カウンター スクリプトをダウンロードしました。
これは、Google での PHP カウンター スクリプトの最初の結果であり、期待どおりに機能しました。
255 件のリクエストがオーバーフローして 0 に戻った後、ブラウザで更新を保持して、問題が発生するかどうかを確認しようとしました。このスクリプトを修正するにはどうすればよいですか? 犯人はおそらく1バイトのデータしか取得できないと思いますが、実際にはデータの権利filesize()
なので意味がありませんか? プレーンテキスト形式で保存されるので?255
3 bytes
なぜオーバーフローするのでしょうか?それはPHPでさえ、オーバーフローしてはならず、より大きなデータ型に自動的に変化します。
<?php
$orderCountFile = "order_num_count.txt";
if (file_exists($orderCountFile)) {
$fil = fopen($orderCountFile, r);
$dat = fread($fil, filesize($orderCountFile));
echo $dat+1;
fclose($fil);
$fil = fopen($orderCountFile, w);
fwrite($fil, $dat+1);
} else {
$fil = fopen($orderCountFile, w);
fwrite($fil, 1);
echo '1';
fclose($fil);
}
?>
ええ、スクリプトを別の目的に作り直し始めました。これを使用して、Web サイトの注文番号を追跡します。
修正するには$dat
、より大きな整数型に再キャストする必要があると思いますが、PHP でキャストすることはできますか?
また、それらr
とw
は文字列であると思われますが、定数として使用されていますが、問題は発生していないようです。