In this tutorial we will be learning about file handling in php, as we go about this tutorial I’ll be creating a simple application that will write to a file and display the data from the file.
To perform any operation on a file we need to first create a handle, to do so we need the fopen() function of php.
fopen() takes in two parameters , the name of the file for which the handle is begin created and the mode in which the file should be opened.
w-write to a file eg :- fopen(‘filename’,’w’); – Note ‘w’ mode rewrites the entire file.
r-read to a file eg :- fopen(‘filename’,’r’);
a-append to a file eg :- fopen(‘filename’,’a’);
These are the files I have in the folder . index.php where all the code goes, comments.txt the file on which we will be writing data
Now lets first look at the code.
You can view the demo here – File handling with php demo
HERE to view the file
'; /*Provide a link to view the file in the browser*/
$handle = fopen('comments.txt','a'); /*Create a handle for the file and open it in append mode since we want to add to the existing data*/
fwrite($handle , $comment."\n"); /*Writes users comment to the file*/
fclose($handle); /*Closes the handle*/
echo 'Comments
- ' ;
- '.trim($line).'
$content = file('comments.txt'); /*Read the file on a line by line basis*/
foreach($content as $line) {
echo '
'; /*Print the contents of the file onto the screen*/
}
echo '
';
}else{
echo 'please fill in' ;
}
}
?>
Although I’ve added inline comments into the code , but we will go through the process step by step.
First the user enters any random comment , and submits it, we then on the php script check if the variable is set and if it is not empty .
Since we want to append to the same file we open the file using the fopen function in append mode (‘a’) .
$handle = fopen(‘comments.txt’,’a’);
Then we write to the file using the fwrite function .
fwrite expects 2 parameters , the file handle and the content to be written.
fwrite($handle , $comment.”\n”); (\n is used for a line break) .
fclose($handle) closes the file handle.
Now since we want to read the file and print contents on a line by line basis we use the file() function (instead of fopen() in read mode) and pass the filename to it.
$content = file(‘comments.txt’);
Then lastly we use the for each loop to print each comment in the file, to the screen.
In the code above I have have striped off all the styling just to avoid any confusion and of-course our main goal is to provide what matters .
This was just a basic example from me to help you understand how file handling in php works,in actual practice a database would be used for a commenting system and information such as Author,Time etc also needs to be displayed.