If you've been following along, you already know how PHP can be used to extract data from a database...it's as easy as apple pie. But in the real world, data isn't always stored in neat rows and columns, and you're quite likely to come across situations where the data you need is actually stored in a bunch of ASCII text files. You have three options here. You could con someone into the mind-numbing task of inserting the textual data into a database. You could throw up your hands in despair and look for another job. Or you could use PHP's built-in file functions to extract and format the data. The first option requires guile and cunning. The second is unacceptable. And the third requires this issue of PHP 101. Over the next few pages, we'll be discussing the basics of PHP's file functions, together with some interesting examples. And then we'll explore the murky tunnels of user-defined functions, and delve deep into the mysteries of local and global variables, return values and function parameters. Pack some warm clothes, bring enough food and get someone to feed the dogs - this is one journey you don't want to miss!{mospagebreak title=Windy Nights} From the days of C, programmers have had the ability to create files on the system, read them and perhaps even execute them via the shell. And, like all good programming languages, PHP comes with a bunch of functions which allow you to read and write files with minimum effort. Let's get straight into the nitty-gritty of reading a file. Create a text file and populate it with some text - here's what our file, which we've named "random.txt", looks like: Before you can use PHP to read the contents of this file, you need to ensure that you have permission to read it. On *NIX, this is accomplished via the "chmod" command.- try to make it world-readable. And here's some simple PHP code that reads the file and returns the contents and file size: And here's the output: As you can see, readfile() doesn't do much - it simply reads the file and displays the contents. It also returns the size of the file in bytes - we've displayed this using an echo() above. A far more useful function, and one which lets you format the extracted data, is the file() function, which allows you to read the file into a regular PHP array. Each element of the array represents one line of the file, and therefore, the size of the array is representative of the number of lines in the file. Take a look: In this case, we've used the file() function to read the contents of the entire file into an array called $contents. Using the sizeof() function, we can obtain the length of the array, which is the same as the number of lines present in the text file. The "for" loop is used to read and display each element of the array. And here's the output:
blog comments powered by Disqus |