Home > Article > Backend Development > Eight common file operation methods in PHP programming_PHP tutorial
File and directory operations
It is very convenient for PHP to process files and directories on the local server, but sometimes permissions and path-related problems may occur
1. Open the file
resource fopen (string filename, string mode [, bool use_include_path [, resource zcontext]] )
$handle = fopen(filename,mode)//Open the file and return the handle representing the resource of this file
The file name can use a relative path or an absolute path. You can use the network protocol mode. The opening mode has rr+ww+aa+xx+b
If you do not specify the 'b' tag when operating binary files, you may encounter some strange problems, including corrupted image files and Weird question about rn character.
For portability reasons, it is strongly recommended to always use the 'b' flag when opening files with fopen().
The following are several ways to open files
$fp = @fopen('log.txt',"rb");
$fp = @fopen('../log.txt'," rb");
$fp = @fopen("http://www.runer.com.cn/default.htm","rb");//You can also use protocols such as ftp and ghoper, and php must be enabled allow_url_fopen option in .ini file
//////////////////////////////Code part////////// ////////////////////////////////
$filename1 = "userinfo.txt";//Exists in the directory or include_path This file
$filename2 = "test.txt";//This file does not exist in the directory or include_path
$resource1 = fopen($filename1,"rb");
@$resource2 = fopen( $filename2,"rb");//Because this file does not exist in the directory, and the include_path or include_path is not used to find the path of the included file, this operation will report an error. Using the error suppressor @ can force the browser not to output an error message
if($resource1)
echo "Opening file {$filename1} successfully";
if(!@fopen($filename2,"r"))
echo "Opening file {$filename2} unsuccessfully" ";
//////////////////////////////////////////////// //////////////////////////////
------------------ ---Output results----------------------------------------
Open the file userinfo.txt successful
---------------------------------------- -----------------------------
2. After using the file, you must explicitly tell PHP that the file has been used. Let the operating system ensure that all contents of the file are correctly flushed from the buffer to the hard disk
Use fclose() to close the file,
bool fclose (resource handle)//Close an open file pointer
3. Read the file, the mode parameter of the fopen function allows reading, PHP provides several functions to read data from the file
string fgets (int handle [, int length]) reads a line from the file pointer, on the binary file Attempting fgets will produce unpredictable results
If no length is specified, 1K data will be read by default, and it will stop when a newline character (included in the return value), EOF, or length - 1 bytes has been read
string fgetss (resource handle [, int length [, string allowable_tags]] ) reads a line from the file pointer and filters out HTML tags
fgetc() reads a single character
fread() reads arbitrary binary data
//////////////////////////////Code part/////////////////// ///////////////////////
$handle = fopen ("test.jpg", "rb");
$c;
while (!feof($handle)) {
$contents .= @fread($handle, 8192);//Loop to read and merge it into a large file
}
fclose($ handle);
/////////////////////////////////////////////// ////////////////////////////////
---------------- ----Output results----------------------------------------
------------------------------------------------ ---------------------
4. Determine the status of file reading
Each file handle has a file pointer, or one points to the next The cursor where the operation will occur in the file. According to the mode parameter of the fopen function
the file pointer is initially located at the beginning of the file (0), or at the end of the file
feof() can determine whether the file has reached the end (to the end After the function returns TRUE)
filesize() function returns the size of the file 5. Write file
fwrite() function executes file writing
////////////// /////////////Code part////////////////////////////////////// /////
$filename = 'test.txt';
$somec;
// First we need to make sure the file exists and is writable.
if (is_writable($filename)) {
// In this example, we will open $filename using append mode,
// Therefore, the file pointer will be at the beginning of the file,
// That's where $somecontent will be written when we use fwrite().
if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file $filename";
exit;
}
//Write $somecontent into the file we opened.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file $filename";
exit;
}
echo "Successfully $somecontent is written to file $filename";
fclose($handle);
} else {
}
echo "File $filename is not writable";
////// ////////////////////////////////////////////////////// ///////////////////
------------------------Output results------ ----------------------------------
Successfully added these text to the file and wrote it to the file test .txt
------------------------------------------------ --------------------------
For binary data, the third parameter must be specified, which contains the number of data bytes written to disk
$result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));
6. File permissions and other information
is_readable()//Determine whether the file is readable
is_writeable()//Judge whether the file is writable
is_writable()//Judge whether the file is writable
fileperms()//Judge the permissions of the file (UNIX-style file permission test function)
file_exists( )//Whether this file exists
fileowner()//Determine the user to which the file belongs
filegroup()//Determine the group to which the file belongs
7. Delete and rename the file
unlink()//Delete File
rename()//Rename file
8. Access directory
It is recommended to use forward slash "/" for directory access, compatible with windows and unix systems
basename()//Return does not include File name of path information
dirname()//Returns the directory part of the file name
realpath()//Accepts relative paths and returns the absolute path of the file
pathinfo()//Extracts the directory of the given path name, basic file name and extension
opendir()//Open the directory and return the resource handle
readdir()//Read the directory entry
rewinddir()//Return the reading pointer to the beginning
closedir()//Close the read handle
chdir()//Change the current working directory during the execution of the current script
mkdir()//Create a directory
rmdir()Delete a directory
/// //////////////////////////Code part//////////////////////// /////////////////
//////////////////////////////// //////////////////////////////////////////////
--- ------------------Output results--------------------------------- ----------
filename: web : filetype: dir
filename: study : filetype: dir