For the record, the example given here has an explicit command to truncate the file, however with a 'write mode' of 'w', it will do this for you automatically, so the truncate call is not needed.(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::flock — Bloqueio de arquivo portável
Bloqueia ou desbloqueia o arquivo da mesma forma portável que flock().
operation
       operation é uma das seguintes:
       
LOCK_SH para adquirir um bloqueio compartilhado (leitor).
         
        LOCK_EX para adquirir um bloqueio exclusivo (escritor).
         
        LOCK_UN para liberar um bloqueio (compartilhado ou exclusivo).
         
        
       Também é possível adicionar LOCK_NB como uma máscara de bits para uma
       das operações acima, se flock() não deve
       bloquear durante a tentativa de bloqueio.
      
wouldBlock
       Definido como true se o bloqueio bloqueasse (condição de errno EWOULDBLOCK).
      
Exemplo #1 Exemplo de SplFileObject::flock()
<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // faz um bloqueio exclusivo
    $file->ftruncate(0);     // trunca o arquivo
    $file->fwrite("Escrevendo algo aqui\n");
    $file->flock(LOCK_UN);   // libera o bloqueio
} else {
    echo "Não foi possível obter o bloqueio!";
}
?>For the record, the example given here has an explicit command to truncate the file, however with a 'write mode' of 'w', it will do this for you automatically, so the truncate call is not needed.@digitalprecision What you said is not completely true, ftruncate(0); is needed if there was a write to the file before the lock is acquired. You also may need fseek(0); to move back the file pointer to the beginning of the file
<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
$file->fwrite("xxxxx"); // write something before the lock is acquired
sleep(5); // wait for 5 seconds
if ($file->flock(LOCK_EX)) { // do an exclusive lock
    $file->fwrite("Write something here\n");
    $file->flock(LOCK_UN);   // release the lock    
} else {
    echo "Couldn't get the lock!";
}
?>
"lock.txt" content:
xxxxxWrite something here