PHP is a programming language that's used mostly for building web sites. Instead of a PHP program running on a desktop computer for the use of one person, it typically runs on a web server and is accessed by lots of people using web browsers on their own computers. This section explains how PHP fits into the interaction between a web browser and a web server.
When you sit down at your computer and pull up a web page using a browser such as Internet Explorer or Mozilla, you cause a little conversation to happen over the Internet between your computer and another computer. This conversation and how it makes a web page appear on your screen is illustrated in Figure 1-1.
Here's what's happening in the numbered steps of the diagram:
You type www.example.com/catalog.html into the location bar of Internet Explorer.
Internet Explorer sends a message over the Internet to the computer named www.example.com asking for the/catalog.html page.
Apache, a program running on the www.example.com computer, gets the message and reads the catalog.html file from the disk drive.
Apache sends the contents of the file back to your computer over the Internet as a response to Internet Explorer's request.
Internet Explorer displays the page on the screen, following the instructions of the HTML tags in the page.
Every time a browser asks for http://www.example.com/catalog.html, the web server sends back the contents of the same catalog.html file. The only time the response from the web server changes is if someone edits the file on the server.
When PHP is involved, however, the server does more work for its half of the conversation. Figure 1-2 shows what happens when a web browser asks for a page that is generated by PHP.
Here's what's happening in the numbered steps of the PHP-enabled conversation:
You type www.example.com/catalog/yak.php into the location bar of Internet Explorer.
Internet Explorer sends a message over the Internet to the computer named www.example.com asking for the/catalog/yak.php page.
Apache, a program running on the www.example.com computer, gets the message and asks the PHP interpreter, another program running on the www.example.com computer, "What does /catalog/yak.php look like?"
The PHP interpreter reads the file /usr/local/www/catalog/yak.php from the disk drive.
The PHP interpreter runs the commands in yak.php, possibly exchanging data with a database program such as MySQL.
The PHP interpreter takes the yak.php program output and sends it back to Apache as an answer to "What does/catalog/yak.php look like?"
Apache sends the page contents it got from the PHP interpreter back to your computer over the Internet in response to Internet Explorer's request.
Internet Explorer displays the page on the screen, following the instructions of the HTML tags in the page.
"PHP" is a programming language. Something in the web server reads your PHP programs, which are instructions written in this programming language, and figures out what to do. The "PHP interpreter" follows your instructions. Programmers often say "PHP" when they mean either the programming language or the interpreter. In this book, I mean the language when I say "PHP." When I say "PHP interpreter," I mean the thing that follows the commands in the PHP programs you write and that generates web pages.
If PHP (the programming language) is like English (the human language), then the PHP interpreter is like an English-speaking person. The English language defines various words and combinations that, when read or heard by an English-speaking person, translate into various meanings that cause the person to do things such as feel embarrassed, go to the store to buy some milk, or put on pants. The programs you write in PHP (the programming language) cause the PHP interpreter to do things such as talk to a database, generate a personalized web page, or display an image.