PHP Programming

From Wikibooks, open books for an open world
Jump to: navigation, search
PHPWikibookCover.png

PHP is a scripting language designed to fill the gap between SSI (Server Side Includes) and Perl, intended for the web environment. Its principal application is the implementation of web pages having dynamic content. PHP has gained quite a following in recent times, and it is one of the frontrunners in the Open Source software movement. Its popularity derives from its C-like syntax, and its simplicity. PHP is currently divided into two major versions: PHP 4 and PHP 5, although PHP 4 is deprecated and is no longer developed or supplied with critical bug fixes. PHP 6 is currently under development.

If you've ever been to a website that prompts you to login, you've probably encountered a server-side scripting language. Due to its market saturation, this means you've probably come across PHP. PHP was designed by Rasmus Lerdorf to display his resume online and to collect data from his visitors.

Basically, PHP allows a static webpage to become dynamic. "PHP" is an acronym that stands for "PHP: Hypertext Preprocessor". The word "Preprocessor" means that PHP makes changes before the HTML page is created. This enables developers to create powerful applications which can publish a blog, remotely control hardware, or run a powerful website such as Wikipedia or Wikibooks. Of course, to accomplish something such as this, you need a database application such as MySQL.

Before you embark on the wonderful journey of Server Side Processing, it is recommended that you have a basic understanding of the HyperText Markup Language. PHP is also being used to build GUI-driven applications; PHP-GTK is used to build graphical user interfaces.

Setup and Installation

Note: Before contributing, check out the discussion page. How to write your examples.

Learning the Language

The Basics

This section is about things that are important for any type of PHP development. Useful for a PHP programmer of any level.
  1. Start a PHP Beginner Tutorial
  2. Beginning with "Hello World!" 100% developed  as of 10 Feb 2006 (10 Feb 2006)
  3. Nuts and Bolts 75% developed  as of 14 Jan 2006 (14 Jan 2006)
  4. Commenting and Style 100% developed  as of 14 Jan 2006 (14 Jan 2006)
  5. Arrays 75% developed  as of 10 Feb 2006 (10 Feb 2006)
  6. Control structures
    1. The if Structure 75% developed  as of 19 Mar 2009 (19 Mar 2009)
    2. The switch Structure 75% developed  as of 14 Jan 2006 (14 Jan 2006)
    3. The while Loop 75% developed  as of 14 Jan 2006 (14 Jan 2006)
    4. The do while Loop 50% developed  as of 14 Jan 2006 (14 Jan 2006)
    5. The for Loop 50% developed  as of 14 Jan 2006 (14 Jan 2006)
    6. The foreach Loop 75% developed  as of 14 Jan 2006 (14 Jan 2006)
  7. Functions 75% developed  as of 10 Feb 2006 (10 Feb 2006)
  8. Files 100% developed  as of 12 Feb 2008 (12 Feb 2008)
  9. Mailing 50% developed  as of 14 Jan 2006 (14 Jan 2006)
  10. Cookies 75% developed  as of 14 Jan 2006 (14 Jan 2006)
  11. Sessions 75% developed  as of 2008-05-07 (2008-05-07)
  12. Databases
    1. MySQL 75% developed  as of 14 Jan 2006 (14 Jan 2006)
    2. PostgreSQL 25% developed  as of 18 Apr 2009 (18 Apr 2009)
    3. PHP Data Objects 0% developed  as of 18 Dec 2006 (18 Dec 2006)
  13. Integration Methods (HTML Forms, etc.) 75% developed  as of 14 Jan 2006 (14 Jan 2006)

Advanced PHP

Advanced PHP includes high level programming and PHP techniques designed to make PHP even more useful and powerful.

Data Structures

  1. Data Structures

Object Oriented Programming (OOP)

  1. Classes
  2. Special Methods
  3. Over riding and Over loading
  4. Class Extensions (Inheritance)
  5. The SSH Class

Templating

  1. Why Templating
  2. Templates
  3. Caching
  4. SMARTY templating system
  5. PRADO Component Framework
  6. Flat Frog templating system 25% developed  as of 23 march 2006 (23 march 2006)
  7. XSL

Libraries

PHP PEAR

Frameworks

Security

  1. Configuration: Register Globals
  2. SQL Injection Attacks
  3. Cross Site Scripting Attacks
  4. Building a secure user login system

See also the section on avoiding session fixation in the Sessions chapter.

Command-Line Interface (CLI)

  1. PHP CLI
  2. PHP-GTK
  3. Daemonization

Appendices