Home >Backend Development >PHP Tutorial >Questions and answers about file operations in PHP development_PHP tutorial
Foreword:
PHP has support for the operations of various databases, and there are also rich operating methods for file operations. Many friends’ current operations are still based on file operations, but sometimes there are many problems when operating files. For confusion and doubts, 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, parameters), the parameters can be w, w+, a, a+
2. Use exec (echo > 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 it
Q: Why can’t I create a 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 where your PHP file is written must have write permission, that is, after logging in to your FTP software, the other group must have write permission.
If not, please modify the permissions and try
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 do I get an error 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.
Question: After opening a file, can PHP position the file "cursor" like C?
Answer: Yes, use fseek();
Q: I want to not allow others to access the file when accessing it. What should I do?
Answer:
1. You can use other procedures to restrict users from accessing pages for file operations
2. Use flock(); please refer to the manual for detailed parameters and usage
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 (there are more than three lines of data in the test.dat file)
<?php
$filename=test.dat;//Define operation file
$delline=3; //Number of rows 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
//Determine the deleted row
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 provides you with relevant reminders for other file operations~
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 at the top of the page) error_reporting(0); is used to block the display of all error messages on 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 the 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 the 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 to chmod file permissions when using PHP to create files. It is recommended to be 777
Q: How to use text files as data warehouse? Some guestbooks, forums, etc. all use this!
Answer: In fact, this is just a typical example of using file and combining it with explode to read and split data.
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 files?
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 content only requires variable substitution based on deleting the content. I hope you can look up and change my continue above to replace the variable data.