My apologies for taking so long to actually get to the point where you get information from files. In this lesson we will teach you how to read data from a file using various PHP functions.
PHP - File Open: ReadBefore we can read information from a file we have to use the function fopen
to open the file for reading. Here's the code to read-open the file we created
in the PHP File Write lessons.
$myFile = "testFile.txt"; $fh = fopen($myFile, 'r');
The file we created in the last lesson was named "testFile.txt". Your PHP script that you are writing should reside in the same
directory as "text.txt". Here are the contents of our file from File Write.
Floppy JalopyNow that the file is open, with read permissions enabled, we can get started!
PHP - File Read: fread Function
The fread function is the staple for getting data out of a file. The
function requires a file handle, which we have, and an integer to tell the
function how much data, in bytes, it is supposed to read.
One character is equal to one byte. If you wanted to read the first five characters
then you would use five as the integer.
$myFile = "testFile.txt"; $fh = fopen($myFile, 'r'); $theData = fread($fh, 5); fclose($fh); echo $theData;
The first five characters from the testFile.txt file are now stored inside
$theData. You could echo this string, $theData, or write it to another file.
If you wanted to read all the data from the file, then you need to get the
size of the file. The filesize function returns the length of a file, in bytes,
which is just what we need! The filesize function requires the name of the file that is to be sized up.
$myFile = "testFile.txt"; $fh = fopen($myFile, 'r'); $theData = fread($fh, filesize($myFile)); fclose($fh); echo $theData;
Floppy Jalopy Pointy PintoNote: It is all on one line because our "testFile.txt" file did not have a <br /> tag to
create an HTML line break.
Now the entire contents of the testFile.txt file is stored in the string variable
PHP - File Read: gets FunctionPHP also lets you read a line of data at a time from a file with the gets function. This can or cannot
be useful to you, the programmer. If you had separated your data with new lines
then you could read in one segment of data at a time with the gets function.
Lucky for us our "testFile.txt" file is separated by new lines and
we can utilize this function.
$myFile = "testFile.txt"; $fh = fopen($myFile, 'r'); $theData = fgets($fh); fclose($fh); echo $theData;
Floppy JalopyThe fgets function searches for the first occurrence of "\n" the
newline character. If you did not write newline characters to your file
as we have done in File Write,
then this function might not work the way you expect it to.