Home  >  Article  >  Backend Development  >  PHP and file operations_PHP tutorial

PHP and file operations_PHP tutorial

WBOY
WBOYOriginal
2016-07-14 10:12:09849browse

1. Directory operation

The first is the function to read from the directory, opendir(), readdir(), closedir(). When used, the file handle is opened first, and then iteratively listed:
$base_dir="filelist/";
$fso=opendir($base_dir);
echo $base_dir."


";
while($flist=readdir($fso)){
echo $flist."
";
}
closedir($fso)
?>
This is a program that returns the files and directories under the file directory (0 files will return false).

Sometimes you need to know the information of the directory. You can use dirname($path) and basename($path) to return the directory part and file name part of the path respectively. You can use disk_free_space($path) to return the remaining space to view the space.

Create command:

mkdir($path,0777): 0777 is the permission code, which can be set by the umask() function under non-window conditions.

rmdir($path): will delete the file with the path in $path.


2. File Operation


● New file
       
First, determine the permissions of the directory where the file you want to create is located; the recommended device is 777. Then, it is recommended to use an absolute path for the name of the new file.
$filename="test.txt";
$fp=fopen("$filename", "w+"); //Open the file pointer and create the file
if ( !is_writable($filename) ){
​​​die("File:" .$filename. "Not writable, please check!");
}
//fwrite($filename, "anything you want to write to $filename.";
fclose($fp); //Close pointer


● Read file

First, check whether a file can be read (permission issue), or whether it exists. We can use the is_readable function to obtain the information.:

$file = 'dirlist.php';
if (is_readable($file) == false) {
​​​​die('The file does not exist or cannot be read');
} else {
echo 'existence';
}
?>


There is also file_exists (demoed below) to determine the existence of a file, but this is obviously not as comprehensive as is_readable. When a file exists, you can use


$file = "filelist.php";
if (file_exists($file) == false) {
           die('File does not exist');
}
$data = file_get_contents($file);
echo htmlentities($data);
?>
However, the file_get_contents function is not supported on lower versions. You can first create a handle to the file, and then use a pointer to read all of it:

There is another way to read binary files:

$data = implode('', file($file));

● Write file

Same as reading a file, first check if it can be written:


$file = 'dirlist.php';
if (is_writable($file) == false) {
           die("You have no right to write!");
}
?>


If you can write, you can use the file_put_contents function to write:

$file = 'dirlist.php';
if (is_writable($file) == false) {
          die('I am a chicken feather, I can't');
}
$data = 'I am despicable, I want';
file_put_contents ($file, $data);
?>

The file_put_contents function is a newly introduced function in php5 (if you don’t know it exists, use the function_exists function to determine it first). Lower versions of php cannot be used. You can use the following method:


$f = fopen($file, 'w');
fwrite($f, $data);
fclose($f);


Replace it.

When writing a file, sometimes you need to lock it, and then write:

function cache_page($pageurl,$pagedata){
If(!$fso=fopen($pageurl,'w')){
​​​​ $this->warns('Unable to open cache file.');//trigger_error
         return false;
}
If(!flock($fso,LOCK_EX)){//LOCK_NB, exclusive lock
​​​​ $this->warns('Unable to lock cache file.');//trigger_error
         return false;
}
If(!fwrite($fso,$pagedata)){//Write byte stream, serialize to write other formats
​​​​ $this->warns('Unable to write to cache file.');//trigger_error
         return false;
}
flock($fso,LOCK_UN);//Release lock
fclose($fso);
Return true;
}

● Copy and delete files

Deleting files in PHP is very easy. Use the unlink function to simply operate:

$file = 'dirlist.php';
$result = @unlink ($file);
if ($result == false) {
echo 'The mosquitoes are gone';
} else {
echo 'Can't drive away';
}
?>

That’s it.

Copying files is also easy:


$file = 'yang.txt';
$newfile = 'ji.txt'; # The parent folder of this file must be writable
if (file_exists($file) == false) {
            die ('The demo is not online and cannot be copied');
}
$result = copy($file, $newfile);
if ($result == false) {
echo 'Copy memory ok';
}
?>

You can use the rename() function to rename a folder. Other operations can be achieved by combining these functions.

● Get file attributes

Let me talk about a few common functions:
Get the latest modification time:


$file = 'test.txt';
echo date('r', filemtime($file));
?>


What is returned is the unix timestamp, which is commonly used in caching technology.

Related are also the time fileatime() and filectime() are used to obtain the last time accessed
$owner = posix_getpwuid(fileowner($file));
(non-window system), ileperms() obtains file permissions,

$file = 'dirlist.php';
$perms = substr(sprintf('%o', fileperms($file)), -4);
echo $perms;
?>

filesize() returns the file size in bytes:

//Output is similar: somefile.txt: 1024 bytes

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

To get all the information of a file, there is a function stat() function that returns an array:

$file = 'dirlist.php';
$perms = stat($file);
var_dump($perms);
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477220.htmlTechArticle1. Directory operations are first functions to read from the directory, opendir(), readdir(), closedir() , when used, the file handle is opened first, and then iteratively listed: ?php $base_dir=filelist/; $fso=opend...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn