タイトルはかなり明確です:
PHPファイルがあり、100.000人のユーザーが同時にアクセスしようとしても、初めて実行するようにしたい。
次のように、サーバーに書き込むロック ファイルを使用してこれを行うことができます。
if (!is_file("visited_once.txt"))
{
//you're the one
file_put_contents("visited_once.txt", "");
}
しかし、ファイル ソリューションが 100.000 の同時要求に対して機能することを 100% 確信しているわけではないため、データベース ソリューションはより洗練されたものになる可能性があります。
テーブルを作成する
CREATE TABLE visited
(
visit int NOT NULL,
UNIQUE (visit)
);
リクエストに応じてこのようなことをする
try
{
$db->query("INSERT INTO visited VALUES (0)");
//you're the one
}
catch (Exception $ex)
{
//nope! Already visited
}
これは一意のキーを使用し、データベースの一貫性に依存します。
<?php
if(file_exists('check.txt')) exit;
file_put_contents('check.txt','1');
...your code...
?>
スクリプトが実行されていることを示すフラグとしてファイルに何かを書き込み、スクリプトの最後でファイルを削除します。スクリプトの開始時に、ファイルが存在するかどうかを確認します。
例えば:
$flag_file = 'flag.tmp';
if (file_exists($flag_file)) exit();
file_put_contents($flag_file, 1);
// rest of the script
unlink($flag_file);
txt ファイルまたは MySQl テーブルに書き込めますか? その場合は、テキスト ファイルまたは MySQL テーブルのフィールドの文字を 0 に設定し、PHP スクリプトを初めて実行するときに 1 に設定し、if ステートメントを使用します。
RETRIEVE YOUR NUMBER VIA TXT OR MYSQL
$myVar = YOUR NUMBER;
if ($myVar > 0){
//don't run
}
else{
//run
}