O'Reilly logo

Learning PHP 5 by David Sklar

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 1. Orientation and First Steps

There are lots of great reasons to write computer programs in PHP. Maybe you want to learn PHP because you need to put together a small web site for yourself that has some interactive elements. Perhaps PHP is being used where you work and you have to get up to speed. This chapter provides context for how PHP fits into the puzzle of web site construction: what it can do and why it's so good at what it does. You'll also get your first look at the PHP language and see it in action.

PHP's Place in the Web World

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.

Client and server communication without PHP

Figure 1-1. Client and server communication without PHP

Here's what's happening in the numbered steps of the diagram:

  1. You type www.example.com/catalog.html into the location bar of Internet Explorer.

  2. Internet Explorer sends a message over the Internet to the computer named www.example.com asking for the /catalog.html page.

  3. Apache, a program running on the www.example.com computer, gets the message and reads the catalog.html file from the disk drive.

  4. Apache sends the contents of the file back to your computer over the Internet as a response to Internet Explorer's request.

  5. 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.

Client and server communication with PHP

Figure 1-2. Client and server communication with PHP

Here's what's happening in the numbered steps of the PHP-enabled conversation:

  1. You type www.example.com/catalog/yak.php into the location bar of Internet Explorer.

  2. Internet Explorer sends a message over the Internet to the computer named www.example.com asking for the /catalog/yak.php page.

  3. 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?"

  4. The PHP interpreter reads the file /usr/local/www/catalog/yak.php from the disk drive.

  5. The PHP interpreter runs the commands in yak.php, possibly exchanging data with a database program such as MySQL.

  6. 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?"

  7. 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.

  8. 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.

This book is concerned with the details of writing those programs — i.e., what happens in Step 5 of Figure 1-2 (although Appendix A contains details on configuring and installing the PHP interpreter on your own web server).

PHP is called a server-side language because, as Figure 1-2 illustrates, it runs on a web server. Languages and technologies such as JavaScript and Flash, in contrast, are called client-side because they run on a web client (like a desktop PC). The instructions in a PHP program cause the PHP interpreter on a web server to output a web page. The instructions in a JavaScript program cause Internet Explorer, while running on your desktop PC, to do something such as pop up a new window. Once the web server has sent the generated web page to the client (Step 7 in the Figure 1-2), PHP is out of the picture. If the page content contains some JavaScript, then that JavaScript runs on the client but is totally disconnected from the PHP program that generated the page.

A plain HTML web page is like the "sorry you found a cockroach in your soup" form letter you might get after dispatching an angry complaint to a bug-infested airline. When your letter arrives at airline headquarters, the overburdened secretary in the customer service department pulls the "cockroach reply letter" out of the filing cabinet, makes a copy, and puts the copy in the mail back to you. Every similar request gets the exact same response.

In contrast, a dynamic page that PHP generates is like a postal letter you write to a friend across the globe. You can put whatever you like down on the page — doodles, diagrams, haikus, and tender stories of how unbearably cute your new baby is when she spatters mashed carrots all over the kitchen. The content of your letter is tailored to the specific person to whom it's being sent. Once you put that letter in the mailbox, however, you can't change it any more. It wings its way across the globe and is read by your friend. You don't have any way to modify the letter as your friend is reading it.

Now imagine you're writing a letter to an arts-and-crafts-inspired friend. Along with the doodles and stories you include instructions such as "cut out the little picture of the frog at the top of the page and paste it over the tiny rabbit at the bottom of the page," and "read the last paragraph on the page before any other paragraph." As your friend reads the letter, she also performs actions the letter instructs her to take. These actions are like JavaScript in a web page. They're set down when the letter is written and don't change after that. But when the reader of the letter follows the instructions, the letter itself can change. Similarly, a web browser obeys any JavaScript commands in a page and pops up windows, changes form menu options, or refreshes the page to a new URL.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required