HomePHP Page 8 - File And Directory Manipulation In PHP (part 1)
In Stat We Trust - PHP
PHP comes with a powerful and flexible file manipulation API that allows developers (among other things) to read and write files, view and modify file attributes, read and list directory contents, alter file permissions, and retrieve file contents into a variety of native data structures. Find out more, inside.
An alternative way of obtaining file information is via the stat() function, which retrieves detailed status information on the named file. The return value from stat() is an array consisting of the following elements (take a look at the PHP manual page for the stat() function for more information on what each array element represents):
ARRAY WHAT IT KEY MEANS ------------------------------ dev device number ino inode number mode inode protection mode nlink number of links uid file owner's user ID gid file owner's group ID rdev device type size file size (in bytes) atime file's last access timestamp mtime file's last modify timestamp ctime file's last change timestamp blksize filesystem block size blocks file's allocated blocks
Consider the following example, and its output, which illustrate how stat() works:
<?php
// if form has not yet been submitted
// display input box
if (!$_POST['file'])
{
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Enter file path <input type="text" name="file">
</form>
<?
}
// else process form input
else
{
echo "Filename: <b>" . $_POST['file'] . "</b><br>";
// check if file exists
if (file_exists($_POST['file']))
{
// get file status
$stats = stat($_POST['file']);
// iterate over array and print information
foreach ($stats as $k=>$v)
{
if (!is_numeric($k))
{
echo "$k: <b>$v</b><br>";
}
}