3v4l.org

run code in 300+ PHP versions simultaneously
<?php function fpc($filename, $data) { // open file pointer, init flock options $fp = fopen($filename, 'w'); $retries = 0; $max_retries = 100; if (!$fp) { return false; } // loop until get lock, or reach max retries do { if ($retries > 0) { usleep(rand(1, 5000)); } $retries += 1; } while (!flock($fp, LOCK_EX) && $retries <= $max_retries); // couldn't get the lock if ($retries == $max_retries) { return false; } // got lock, write data fwrite($fp, $data); // release lock flock($fp, LOCK_UN); fclose($fp); return true; }
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7

preferences:
120.3 ms | 406 KiB | 5 Q