PHP Filesystem pclose() Function
The PHP Filesystem pclose() function is used to close a pipe opened by popen(), and return the termination status of the process that runs. In case of an error, -1 can return.
Syntax
Below is the syntax of the PHP Filesystem pclose() function −
int pclose ( resource $handle )
Parameters
Below is the only required parameter of the pclose() function −
| Sr.No | Parameter & Description |
|---|---|
| 1 |
$handle(Required) It is the file pointer must be valid and return from a successful call to popen(). |
Return Value
The function pclose() returns the ending status of the operation that was initiated. In the event of an error, -1 is returned.
PHP Version
The pclose() function was first introduced as part of core PHP 4 and work well with the PHP 5, PHP 7 and PHP 8.
Example
Here is the basic example to see how the PHP Filesystem pclose() function is used to close a pipe opened by popen() function.
<?php
//Open a pipe
$handle = popen("/bin/ls", "r");
//Execution of some code
//Close the pipe
pclose($handle);
?>
Output
Here is the outcome of the following code −
ls: stdout: Broken pipe
Example
Here is the another example to show the usage of pclose() function to close a pipe opened by the popen() and list all the files and directories present in the mentioned pipe.
<?php
// Open a pipe
$handle = popen("/bin/ls", "r");
if ($handle) {
// Read the output from the pipe
while (($line = fgets($handle)) !== false) {
echo $line;
}
// Close the pipe
pclose($handle);
} else {
echo "Unable to open the pipe.";
}
?>
Output
This will produce the following result −
config.php csvfile.csv data.csv documents error_log.log image.jpg images index.php logo.gif logs myfile.txt new dir newfile.php sample.txt uploads
Example
Here is one more example to know the usage of pclose() function. So in this example we will check the disk space using the df command.
The command '/bin/df -h' is used in Unix operating systems. So /bin/df is the path to the df command, so df means "disk free." It basically shows the amount of disk space available on the file system. And -h is used to convert the output in human readable format.
<?php
// Open a pipe to check disk usage
$handle = popen("/bin/df -h", "r");
if ($handle) {
// Read the output from the pipe
while (($line = fgets($handle)) !== false) {
echo $line;
}
// Close the pipe
pclose($handle);
} else {
echo "We are unable to open the pipe.";
}
?>
Output
This will generate the below output −
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk3s1s1 228Gi 9.6Gi 123Gi 8% 404k 1.3G 0% / devfs 198Ki 198Ki 0Bi 100% 686 0 100% /dev /dev/disk3s6 228Gi 20Ki 123Gi 1% 0 1.3G 0% /System/Volumes/VM
Example
In this example we will check the current date and time with the help of date command and close the pipe using the pclose() function
<?php
// Open a pipe to display the date and time
$handle = popen("/bin/date", "r");
if ($handle) {
// Read the output from the pipe
while (($line = fgets($handle)) !== false) {
echo $line;
}
// Close the pipe
pclose($handle);
} else {
echo "We are unable to open the pipe.";
}
?>
Output
This will lead to the below output −
Mon Jun 24 14:39:11 IST 2024
Summary
The pclose() method is a built-in function to close an opened pipe. The popen function creates a pipe to execute a system command, fgets reads the output, and pclose closes the pipe when the reading is finished. This is a standard method for communicating with system commands in PHP.