PHP PHP: Hypertext Preprocessing Matt Murphy & Dublas Portillo
What is PHP? PHP is a server-side scripting language designed specifically for the Web. PHP is a server-side scripting language designed specifically for the Web. An open source language An open source language PHP code can be embedded within an HTML page, which will be executed each time that page is visited. PHP code can be embedded within an HTML page, which will be executed each time that page is visited. Example code (all equivalent): Example code (all equivalent): Short Style: Short Style: XML Style: XML Style: Script Style: echo “Hello World!”; Script Style: echo “Hello World!”; ASP Style: ASP Style:
History of PHP Created by Rasmus Lerdorf in 1994 Created by Rasmus Lerdorf in 1994 Originally a set of Perl scripts used by Lerdorf to show off his résumé as well as collect information on his website, such as the site’s traffic info. Originally a set of Perl scripts used by Lerdorf to show off his résumé as well as collect information on his website, such as the site’s traffic info. Lerdorf later transcribed these Perl scripts into a set of CGI binaries written in C, and in doing so, combined it with his own Form Interpreter to create PHP/FI. Lerdorf later transcribed these Perl scripts into a set of CGI binaries written in C, and in doing so, combined it with his own Form Interpreter to create PHP/FI.
History of PHP PHP/FI grew in popularity, but did not become widely known until two program developers named Zeev Suraski and Andi Gutmans, developed a new parser in the summer of 1997, which led to the development of PHP 3.0. PHP/FI grew in popularity, but did not become widely known until two program developers named Zeev Suraski and Andi Gutmans, developed a new parser in the summer of 1997, which led to the development of PHP 3.0. The newest version out is PHP 5, which uses an engine developed by Suraski and Gutmans, known as the Zend II Engine. (Zend I was used by PHP 4) The newest version out is PHP 5, which uses an engine developed by Suraski and Gutmans, known as the Zend II Engine. (Zend I was used by PHP 4)
PHP Programming Paradigms Uses both procedural and object oriented paradigms Uses both procedural and object oriented paradigms Procedural PHP Procedural PHP Has been in use since the creation of PHP, its primary paradigm. Has been in use since the creation of PHP, its primary paradigm. Allows for easy and quick learning of the PHP language. Allows for easy and quick learning of the PHP language. Similar to other popular languages such as Visual Basic, C++, and Fortran. Similar to other popular languages such as Visual Basic, C++, and Fortran.
PHP Programming Paradigms Object Oriented PHP Object Oriented PHP Similar to Java, example of an object class: Similar to Java, example of an object class: <?php class BaseClass { function __construct() { function __construct() { echo "In BaseClass constructor "; echo "In BaseClass constructor "; }} class SubClass extends BaseClass { function __construct() { function __construct() { parent::__construct(); parent::__construct(); echo "In SubClass constructor "; echo "In SubClass constructor "; }} $obj = new BaseClass(); $obj = new SubClass(); ?> public class BaseClass { public BaseClass() { public BaseClass() { System.out.println("In BaseClass constructor\n"); }} class SubClass extends BaseClass { public SubClass() { public SubClass() {super(); System.out.println("In SubClass constructor\n"); }} public class Output { public static void main(String[] args) { public static void main(String[] args) { Object obj; obj = new BaseClass(); obj = new SubClass(); }}
Features of PHP Very Efficient – Can serve millions of hits per day. Very Efficient – Can serve millions of hits per day. Database Integration – Supports many databases, such as mySQL and Oracle. Also has excellent XML support as of PHP 5. Database Integration – Supports many databases, such as mySQL and Oracle. Also has excellent XML support as of PHP 5. Built-in Libraries – Tailored to web development, one can connect to other network services, send , work with cookies, generate PDF documents, and make GIF images on the fly all with a few lines of code. Built-in Libraries – Tailored to web development, one can connect to other network services, send , work with cookies, generate PDF documents, and make GIF images on the fly all with a few lines of code. It’s Free – Available on It’s Free – Available on Easy to Learn – Very similar in syntax to C/C++/Java and Perl. Easy to Learn – Very similar in syntax to C/C++/Java and Perl. Portable – Works on Unix based operating systems, on Mac OS X, as well as on versions of Microsoft Windows. Your PHP code will often work without modification on a different system running PHP. Portable – Works on Unix based operating systems, on Mac OS X, as well as on versions of Microsoft Windows. Your PHP code will often work without modification on a different system running PHP.
Database Support The following is a list of supported databases in PHP 5: The following is a list of supported databases in PHP 5: Adabas D InterBase PostgreSQL dBase FrontBase SQLite Empress mSQL mSQL FilePro (read-only) Solid Direct MS-SQL SybaseHyperwaveMySQLVelocisODBC Unix dbm Informix Oracle (OCI7 and OCI8) IngresOvrimos IBM DB2
Differences From Java Data types are not required in variable declarations. Data types are not required in variable declarations. The $ symbol precedes all variables in PHP The $ symbol precedes all variables in PHP Constants are declared using the define() method in PHP: ex. define(“AOL", "something"); Constants are declared using the define() method in PHP: ex. define(“AOL", "something"); Constructors do not necessarily have to be the same name as the class name. Constructors do not necessarily have to be the same name as the class name. Destructors are used in PHP to remove objects from memory after they are constructed. Destructors are used in PHP to remove objects from memory after they are constructed.
What is PHP Good For? It is great for complex web page designs It is great for complex web page designs E-commerce sites with heavy traffic (ex. Amazon) E-commerce sites with heavy traffic (ex. Amazon) Complex bulletin boards and forums (ex. phpBB) Complex bulletin boards and forums (ex. phpBB) Secure websites (ex. Novasis) Secure websites (ex. Novasis) web hosts (ex. Gmail) Working with and integrating XML into your webpage Working with and integrating XML into your webpage Database management and search (ex. theFaceBook) Database management and search (ex. theFaceBook)
Processing a PHP Page
Getting Started Download Apache 2 Windows Binary (MSI installer) at Download Apache 2 Windows Binary (MSI installer) at The zip must end with win32-x86-no_ssl.msi The zip must end with win32-x86-no_ssl.msi Download the PHP zip package at Download the PHP zip package at Download the zip pack, not the installer Download the zip pack, not the installer Install Apache 2, use recommended settings Install Apache 2, use recommended settings If error message is given, go here (Google port 80 problem): If error message is given, go here (Google port 80 problem): Unzip PHP file to C:\PHP Unzip PHP file to C:\PHP
Getting Started Next, copy/paste "php.ini-dist" to C:/Program Files/Apache Group/Apache2, and rename it to php.ini. Next, copy/paste "php.ini-dist" to C:/Program Files/Apache Group/Apache2, and rename it to php.ini. Copy the following list of.dll files from your C:\PHP and C:\PHP\ext directory to your root Apache directory (where you put php.ini): Copy the following list of.dll files from your C:\PHP and C:\PHP\ext directory to your root Apache directory (where you put php.ini): fdftk.dll fribidi.dll gds32.dll libeay32.dll libmash.dll libmysql.dll libmysqli.dll msql.dll ntwdblib.dll php5apache2.dll php5apache.dll php5apache_hooks.dll php5isapi.dll php5nsapi.dll php5ts.dll phpmsql.dll phpmssql.dll phpmysql.dll phpmysqli.dll ssleay32.dll yas.dll fdftk.dll fribidi.dll gds32.dll libeay32.dll libmash.dll libmysql.dll libmysqli.dll msql.dll ntwdblib.dll php5apache2.dll php5apache.dll php5apache_hooks.dll php5isapi.dll php5nsapi.dll php5ts.dll phpmsql.dll phpmssql.dll phpmysql.dll phpmysqli.dll ssleay32.dll yas.dll
Getting Started Set the PHP path for Windows: Go to: Control Panel > System > Advanced tab Click on "Environment variables" Look in the "System variables" pane Find the "Path" entry Double click it and add at the end of the string your PHP dir You need to start with ";" without double quotes! And follow by: C:php So it will look like: ";C:php" Again, without double quotes! Now restart the Apache server. Test: Create a simple file (using notepad) such as php5_info.php Set the PHP path for Windows: Go to: Control Panel > System > Advanced tab Click on "Environment variables" Look in the "System variables" pane Find the "Path" entry Double click it and add at the end of the string your PHP dir You need to start with ";" without double quotes! And follow by: C:php So it will look like: ";C:php" Again, without double quotes! Now restart the Apache server. Test: Create a simple file (using notepad) such as php5_info.php Save it in C:/Program Files/Apache Group/Apache2/htdocs/php5_info.php Open a browser and enter the following address it should display your complete PHP setting if it does not work properly you might have done something wrong with the multiple edits; check them out and give it another go. Save it in C:/Program Files/Apache Group/Apache2/htdocs/php5_info.php Open a browser and enter the following address it should display your complete PHP setting if it does not work properly you might have done something wrong with the multiple edits; check them out and give it another go. Now you can use any text editor or html editor to create PHP files Now you can use any text editor or html editor to create PHP files
An Example titleCreator.php titleCreator.php Uses a simple form with simple fields Uses a simple form with simple fields Asks a user for input, such as the title they want, what their name is, the background color, etc. Asks a user for input, such as the title they want, what their name is, the background color, etc. When submitted, the page is reloaded with the specified form values using PHP code to write out new HTML code When submitted, the page is reloaded with the specified form values using PHP code to write out new HTML code
titleCreator.php
Useful Links Official Website ( ) Official Website ( ) PHP Online Manual ( ) PHP Online Manual ( ) Installation on Windows Systems ( ) Installation on Windows Systems ( ) Using Apache with Windows ( ) Using Apache with Windows ( ) Alternative Installation Guide ( ) Alternative Installation Guide ( )