Q&A on operating files in PHP
Foreword:
PHP supports the operation of various databases, and also has a rich set of operating methods for file operations. Many friends’ current operations are still based on file operations, but sometimes There are still a lot of confusions and doubts when operating files. The following is a collection of some problems about file operations that I encountered in my daily writing process and that my friends on the forum encountered.
Q: How to create a new file?
Answer:
1. Use fopen("File name to be created", "Parameter"), the parameters can be w, w+, a, a+
2. Use exec("echo '' > The file name to be created"); This is to use the system method to create the file. You can also use the touch Linux command to create
Q: Why can't I create the file?
Answer:
1. If you use fopen to create a file, do you use the parameters correctly?
2. For system permission issues, please ask your WEBMASTER whether your FTP directory has write permissions
3. FTP permissions issue, you need to confirm that the directory where the file you want to write to your PHP file has write permissions, that is, the other group must have write permissions after logging in to your FTP software.
If not, please modify the permissions and try again.
Q: How to read a file into an array?
Answer: Use the file function
Q: How to read out all the files?
Answer:
1. Use fread($fp);
2. If your PHP version >=4.3.0, you can use file_get_contents();
Q: How to determine whether the file exists ?
Answer: Use file_exists();
Ask again: Why not use fopen() to judge?
Answer: The reason is that sometimes the data returned by fopen leads us to wrong judgments due to permission issues.
Q: Why does an error occur when I read a WEB page?
Answer:
1. It may be that your transmission parameters are wrong. When reading a WEB page, you can only use r mode to read the page
2. Make sure the WEB page you want to read is accessible
Q: How can I get the relevant attributes of a file?
Answer: PHP provides a set of methods to obtain file attributes, such as filemtime(), fileowner(), filegroup(), filectime(), fileatime()... Please refer to the manual for detailed usage.
Q: After opening a file in PHP, can I position the file "cursor" like C?
Answer: Yes, use fseek();
Q: I want to prevent others from accessing the file when accessing it. What should I do?
Answer:
1. You can use other programs to restrict users from accessing the page for file operations
2. Use flock(); please refer to the manual for detailed parameters and usage methods
Q: How to delete The first line in the file, or specify a line of data?
Answer:
PHP does not provide such an operation method, but we can use it in combination. The following code demonstrates that we will delete the third line of data in the file "test.dat" (the data in the test.dat file is more than Three lines)
$filename="test.dat";//Define the operation file
$delline=3; //Number of lines to be deleted
if(!file_exsits( $filename)){
die("The specified file was not found! Operation interrupted!");
}
$farray=file($filename);//Read file data into the array
for($tmpa=0;$Tmpa
//Judge deleted rows
continue;
}
//Reorganized data
$newfp.=$farray[$Tmpa]."rn";
}
$fp=@fopen($ filename,"a") or die("Failed to open file $filename in writing mode");//We open the file in writing mode
@fputs($fp,$newfp) or die("File writing failed" );
@fclose($fp);
?>
The above code demonstrates deleting a line of files, but if you look carefully, it actually also provides you with other file operations. Reminder~
Q: When I try to open a file that does not exist, how do I prevent the error from being displayed to avoid leaking my path! !
Answer: Add the @ symbol before the method you want to open the file to block errors. @ is a special symbol provided by PHP to block error messages
Or you can add it before the step you want to operate (usually after Top of page) error_reporting(0); used to block the display of all error messages in the page
A not recommended method is to modify php.ini (except ISP)
Q: I am using a virtual host, how can I Prevent other users from stealing my data?
Answer: It is recommended that ISP modify the open_basedir in php.ini for restrictions.
The not recommended ISP setting is to add fopen, file and other file operations to disable_function.
Q: Why can’t I delete these files when I log in via FTP to delete them after I create them with PHP? ?
Answer: Mainly because the files created by PHP belong to the WEB user group, that is, the files created do not belong to your FTP user! ! !
The solution to this problem is to use chmod, unlink, etc. of the PHP program. It is recommended that users remember the chmod file permissions when using PHP to create files. The recommended value is 777.
Q: How to use text files as data warehouses ? Some guestbooks, forums, etc. all use this!
Answer: In fact, this mainly uses file and is a typical example of data reading and segmentation combined with explode.
Q: How to change the file name?
Answer: rename();
Q: How to delete files?
Answer: unlink(); exec("del(rm -vf) filename");
Note: rm -vf is for use under Linux
Q: How to clear the file?
Answer: Use fopen(filename,"w"); or exec("echo '' > filename");
Q: How to edit the file content?
Answer: I remember I once answered a question about deleting file content. In fact, editing the content only requires variable substitution on the basis of deleting the content.
I hope you can look up and change my continue above to replace the variable data:)