Thursday, July 11, 2024
HomeLanguagesPhpPHP | SplFileObject flock() Function

PHP | SplFileObject flock() Function

The SplFileObject flock() function is an inbuilt function of Standard PHP Library (SPL) in PHP which is used to apply portable lock on the file.

Syntax:

bool SplFileObject::flock( $opr, $isBlock )

Parameters: This function accept two parameters as mentioned above and described below:
$opr: It is used to specify the operation to be apply from the following list:

  • LOCK_SH: Acquire a shared lock (reader).
  • LOCK_EX: Acquire an exclusive lock (writer).
  • LOCK_UN: Release a lock.
  • LOCK_NB: Not block while locking.

$isBlock: This parameter is set to True if the lock is block.

Return values: This function returns True on on success or False on failure.

Note: Make sure the used file in below program named as gfg.txt and should have read and write permissions.

Below Programs illustrate the SplFileObject::flock() function in PHP:

Program 1:




<?php
  
// Create Spl Object
$file = new SplFileObject("gfg.txt", "w");
  
// Add an Exclusive lock to gfg.txt
if ($file->flock(LOCK_SH)) { 
    $file->ftruncate(0);
    $file->fwrite("Write GFG inside the gfg.txt");
      
    // Release the lock  
    $file->flock(LOCK_UN);
    echo "Success Lock and Unlock Operation";
else {
    echo "No Lock Available";
}
?>


Output:

Success Lock and Unlock Operation.

Program 2:




<?php
  
// Create SplFile Object
$file = new SplFileObject("gfg.txt", "w");
  
// Add an Exclusive lock to gfg.txt
if ($file->flock(LOCK_EX)) { 
    $file->ftruncate(0);
    $file->fwrite("Write GFG inside the gfg.txt");
      
    // Release the lock  
    $file->flock(LOCK_UN);
    echo "Success Exclusive Lock and Unlock Operation";
} else {
    echo "No Lock Available";
}
?>


Output:

Success Exclusive Lock and Unlock Operation

Reference: http://php.net/manual/en/splfileobject.flock.php

Nicole Veronica Rubhabha
Nicole Veronica Rubhabha
A highly competent and organized individual DotNet developer with a track record of architecting and developing web client-server applications. Recognized as a personable, dedicated performer who demonstrates innovation, communication, and teamwork to ensure quality and timely project completion. Expertise in C#, ASP.Net, MVC, LINQ, EF 6, Web Services, SQL Server, MySql, Web development,
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments