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; }

preferences:
28.28 ms | 409 KiB | 5 Q