Oct 12, 2013

Ketan Patel

Reading and Displaying Content of the Text File in PHP


Reading and Displaying Content of Text File in PHP



This tutorial is very easy and specialy for the beginners. In this post we will learn how to open and read text file and  display its contents simultaneously using php.The logic used in this script is very easy to understand.




Let me tell you that in this tutorial we are going to be familiar with four simple file system functions of the php which are as below.

fopen()  - Opens file or URL

Example :
 <?php
  $data = fopen("c:\\folder\\testing.txt", "r");
 ?>


feof()  - Tests for end-of-file on a file pointer

Example :
<?php
  $fp = fopen("testfile.txt", "r");
  while (!feof($fp)) {
  // do stuff to the current line here
}
fclose($fp);
?>


fgets()   - Gets line from file pointer

Example :

<?php
 $file = fopen("testing.txt","r");
 echo fgets($file);  fclose($file);
?>

fgetc()   - Gets character from file pointer

Example : 
<?php
 $fp = fopen('testfile.txt', 'r');
 if (!$fp) {
    echo 'Could not open file somefile.txt';
 }
 while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}

?>


Now you are familiar with these functions so lets have a look how you can use them.First of all make simple form having one file upload control.

<html>
<body> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="60" />
<input type="submit" value="Read Content" />
</form>
</body>
</html>

Notice the following about the HTML form above:

•  The enctype attribute of the <form> tag specifies which content-type to use when submitting the form. "multipart/form-data" is used when a form requires binary data, like the contents of a file, to be uploaded

•  The type="file" attribute of the <input> tag specifies that the input should be processed as a file. For example, when viewed in a browser, there will be a browse-button next to the input field

Now we will have to put some check for the uploaded file like if its uploaded or not,its type (.txt).

//Checking if file is selected or not
if($_FILES['file']['name'] != "") {

//Checking if the file is plain text or not
if(isset($_FILES) && $_FILES['file']['type'] != 'text/plain') {
echo "<span>File could not be accepted ! Please upload any '*.txt' file.</span>";
exit();

Now we are going to open and read the uploaded file. 

$file = fopen($fileName,"r") or exit("Unable to open file!");

// Reading a .txt file line by line
while(!feof($file)) {
echo fgets($file). "";
}

//Reading a .txt file character by character
while(!feof($file)) {

echo fgetc($file);

}

As we learnt that the feof() will test for end of file. fgets() method will read text file line by line, and fgetc() is used  for reading text file character by character. 



That it.! Simple script is ready.Lets have look at the complete script.


<html>
<body> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="60" />
<input type="submit" value="Read Contents" />
</form>
</body>
</html>


<?php

if($_FILES){

//Checking if file is selected or not

if($_FILES['file']['name'] != "") {


        //Checking if the file is plain text or not

if(isset($_FILES) && $_FILES['file']['type'] != 'text/plain') {

echo "<span>File could not be accepted ! Please upload any '*.txt' file.</span>";

exit();
echo "<center><span id='Content'>Contents of ".$_FILES['file']['name']." File</span></center>";
//Getting and storing the temporary file name of the uploaded file
$fileName = $_FILES['file']['tmp_name'];
//Throw an error message if the file could not be open
$file = fopen($fileName,"r") or exit("Unable to open file!");
 
// Reading a .txt file line by line
while(!feof($file)) {
echo fgets($file). "";
}
 
//Reading a .txt file character by character
while(!feof($file)) {
echo fgetc($file);
}
fclose($file);
}

else {
if(isset($_FILES) && $_FILES['file']['type'] == '')
echo "<span>Please Choose a file by click on 'Browse' or 'Choose File' button.</span>";
}
}
?>

At Last


There are many others file functions to make the concept very clear.This post explains just the basic usage of them.If you like this post then Please do share on social networks or leave your comment in the comment box given below.To stay updated like us on facebook.



Ketan Patel

About Ketan Patel -

I have developed a wide range of websites using CorePHP, Opencart, CakePHP and CodeIgniter including sites for startup companies and small businesses. Apart from my blogging life, I like to read Novels, Listening music and Net surfing.

Subscribe to this Blog via Email :