PHP Programming: Difference between revisions
[unreviewed revision] | [unreviewed revision] |
Line 183: | Line 183: | ||
== Resources == |
== Resources == |
||
*[http://alexeysmirnov.name/blog/?page_id=108 From C/C++ to PHP] Most people program in C++ but not in PHP. This tutorial will explain the important differences. |
*[http://alexeysmirnov.name/blog/?page_id=108 From C/C++ to PHP] Most people program in C++ but not in PHP. This tutorial will explain the important differences. |
||
*[http://www.wepapers.com/navigate/411/php PHP papers] Free php tutorials for download |
|||
*[http://hudzilla.org] Hudzilla.org - Paul Hudson's excellent beginner-expert guide to PHP. |
*[http://hudzilla.org] Hudzilla.org - Paul Hudson's excellent beginner-expert guide to PHP. |
||
*[http://www.w3schools.com/php/default.asp W3Schools] - Quick start with PHP for beginners. |
*[http://www.w3schools.com/php/default.asp W3Schools] - Quick start with PHP for beginners. |
Revision as of 13:25, 15 December 2008
![]() |
A Wikibookian suggests that Programming:Complete PHP be merged into this book. Discuss whether or not this merger should happen on the discussion page. |
See also Programming:Complete PHP
What is PHP?
PHP is a scripting language designed to fill the gap between SSI (Server Side Includes) and Perl, intended largely for the web environment. PHP has gained quite a following in recent times, and it is one of the forerunners in the Open Source software movement. Its popularity derives from its C-like syntax, its speed and its simplicity. PHP is currently divided into two major versions: PHP 4 and PHP 5. PHP 6 is currently under development.
If you've ever been to a website that needs 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 web document to become dynamic. "PHP" is a recursive acronym that stands for "PHP: Hypertext Preprocessor". PHP preprocesses (that is, PHP processes before the output is sent to the browser) hypertext documents. Because of this, the pages can change before the user sees them, based on conditions. This can be used to write something to the page, create a table with a number of rows equal to the number of times the user has visited, or integrate the web page with a web database, such as MySQL.
Before you embark on the wonderful journey of Server Side Processing, it is recommended that you have some 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.
- Beginning with "Hello World!"
- Nuts and Bolts
- Commenting and Style
- Arrays
- Control structures
- Functions
- Files
- Mailing
- Cookies
- Sessions
- Databases
- Integration Methods (HTML Forms, etc.)
Advanced PHP
- Advanced PHP includes high level programming and PHP techniques designed to make PHP even more useful and powerful.
Object Oriented Programming (OOP)
Templating
- Why Templating
- Templates
- Caching
- SMARTY templating system
- PRADO Component Framework
- Flat Frog templating system
- XSL
Libraries
Frameworks
Security
- Configuration: Register Globals
- SQL Injection Attacks
- Cross Site Scripting Attacks
- Building a secure user login system
See also the section on avoiding session fixation in the Sessions chapter.
Command-Line Interface (CLI)
Code Snippets
Useful for any beginners to learn code from.
PHP 4 & 5
Basic Level
echo "the text to print";
- This language construct will echo the text between the quotes. This is not a function but a language construct.echo "$var";
- Notice the double quotation marks. Because double quotation marks are used, this will print the value of the variable. If $var="Bobby", this will output:
Bobby
echo '$var';
- Notice that the quotation marks are now single. This will output the literal keystrokes inside the quotes. The example will output:
$var
$var="Jericho";echo "Joshua fit the battle of $var.";
- Other than substituting the value of a variable for the variable name (and one or two other minor items), double quotes will quote literal keystrokes. So this will output:
Joshua fit the battle of Jericho.
Again, if single quotes were used — 'Joshua fit the battle of $var';
— this would output:
Joshua fit the battle of $var.
echo $var;
- If you only want to print the value of a variable, you don't need quotes at all. If the value of $var is "1214", the code will output:
1214
require "url";
- This language construct will include the page between the quotes. Can NOT be used with dynamic pages, e.g.require("main.php?username=SomeUser");
would not work. This is not a function but a language construct.date("Date/time format");
- Function which returns a date from a Unix Timestamp - where H is the hour, i is the minutes, s is the seconds, d is the day, m is the month and Y is the year in four digits - e.g.date("H:i:s d/m/Y");
would return12:22:01 10/08/2006
on 10th August 2006 at 12:22:01.unlink("filename");
- Function which deletes the file specified in filename.
PHP 4
Basic Level
<?php
$variable1 = 'beginning';
//This is a comment after a variable being defined
if ($variable1 == 'beginning') {
//If is a test to see if a variable has certain
//value and initiates the wanted sequences if true
echo 'Hello World!';
//The echo displays to the page
}
?>
OOP
Include OOP based examples, made by experienced developer
PHP 5 Only
Basic Level
Basics, working only on PHP 5.
file_put_contents("filename", "Text to save");
- Functions which saves the text specified in Text to save to the file specified in filename. Will overwrite existing file contents unless another parameter FILE_APPEND is added.
E.g. file_put_contents("filename", "Text to save");
will write Text to save to filename, but will overwrite existing text whereas file_put_contents("filename", "Text to save", FILE_APPEND);
will write Text to save to filename, but will not overwrite existing text (instead it appends).
OOP
- Input validation by Kgrsajid.
- Advanced Input validation by nemesiskoen.
Editors
For reviews of numerous PHP editors, see PHP-editors.
- Bluefish - PHP Open Source editor (Linux/Unix)
- Dreamweaver - PHP/HTML/CFML Integrated Developer Environment (Windows/Mac OS X)
- DzSoft PHP Editor - 30 day trial available. IDE designed for PHP with syntax checking and running on the script (requires PHP to be installed)
- SciTE - Scintilla-based editor (Windows/Linux)
- KDevelop - Integrated Development Environment (Linux/Unix)
- Kate - Supports a variety of network protocols transparently, kde style - lighter than KDevelop (Linux/Unix)
- PHP Designer - Free (deprecated) PHP editor (Windows)
- TextPad - A robust text editor, highlights PHP Syntax (Windows)
- NetBeans PHP IDE - NetBeans PHP IDE (Windows/Linux/Mac OS X)
- PHPEclipse - PHP module for Eclipse IDE (Windows/Linux/Mac OS X)
- Trustudio - PHP IDE built on Eclipse (Windows/Linux/Mac OS X)
- PHPRunner - Wizard-based interface development (Windows)
- Taco HTML Edit - PHP/HTML editor with live previews of generated pages (Mac OS X)
- gPHPEdit - PHP/HTML For the GNOME Desktop (Linux)
- Zend - Zend Development Enviroment by Zend - The PHP company (Windows/Linux/Mac OS X)
- PHPEdit - A nice PHP Editor for Windows (Windows)
- Dev-PHP - Full-featured IDE for PHP (Windows)
- Jedit - Open Source editor that has many PHP-centric plugins available such as error checking, ftp & structure browser (Windows/Linux/Mac OS X)
- TextMate - Programmers code and markup editor with support for PHP (Mac OS X)
- VIM - Terminal-based text editor, supporting PHP markup (Most platforms) (GPL License)
- Emacs - Emacs is the extensible, customizable, self-documenting real-time display editor. Supports PHP by php-mode.el (Most platforms) (GPL License)
- Quanta Plus - KDE based editor, supporting PHP and other markup languages (Linux) (GPL License)
- Homesite - Code-centric editor with PHP 4 support (Windows)
- Weaverslave - Open source editor, supporting PHP and other markup languages (Open Source) (Windows) (Custom License)
- Notepad - The built-in editor in Windows.
- Notepad++ - A great upgrade to Notepad, brings many new features.
- Enginsite - Fully loaded with just about everything that you would expect from a modern software development environment (Windows)
- NuSphere PhpED - PHP IDE with support for HTML, CSS, XML, SMARTY, XHTML and other with a powerful debugger. (Windows/Linux)
- Komodo IDE - IDE for PHP, Perl, Python, Ruby, Javascript and others. (Windows/Linux/Mac OS X)
Resources
- From C/C++ to PHP Most people program in C++ but not in PHP. This tutorial will explain the important differences.
- PHP papers Free php tutorials for download
- [1] Hudzilla.org - Paul Hudson's excellent beginner-expert guide to PHP.
- W3Schools - Quick start with PHP for beginners.
- The Oracle+PHP Cookbook - Explore a broad range of HowTos for leveraging Oracle's PL/SQL APIs in PHP applications.
- PHP.net - The PHP website. This is where you go to both get PHP and to read the documentation.
- The PHP Manual - Extensive information about PHP.
- PHP Developers Network - Network of PHP-resource driven websites.
- PHP Book Chapters - Sample PHP books chapters, read online.
- Computer-Books.us - A collection of PHP books available for free download.
- PHP Tutorials
- PHPFreaks.com - Learn PHP, PHP Tutorials / Howto, code examples, PHP scripts.
- PHP-Help.net: PHP codes, PHP scripts, PHP examples - PHP help, PHP codes examples, PHP scripts.
- PHP Documentation - Searchable documentation with user comments.
- PHP Books - A large collection of PHP related books.
- PHPSC - PHP Security Consortium. Guides, etc. on security in PHP code.
- Programmabilities.com - PHP scripts and tutorials.
- PHP-Resources.org - Tutorials, docs, newgroups and scripts.
- PHP Resources - Resources and techniques.
- PHP Resource Index - Another nice PHP portals for various PHP resources.
- PHP Builder - A website for PHP news, articles, code library, forums, etc.
- PHPPatterns - Raising awareness and bringing PHP to the Enterprise Creating understanding of PHP's Advanced Capabilities.
- Good PHP Tutorials - A categorized collection of PHP tutorials.
- Mojavi - One of the most popular MVC framework of PHP.
- PHP Web Application Component Toolkit http://phpwact.org/ - It's a wiki.
- Hotscripts.com :: PHP - A very good PHP portal.
- PHP MySQL Tutorial - Very good beginners tutorial.
- Notepad++ - Very simple yet effective source code editor. Supports highlighting and folding.
- EvilWalrus.org - Hundreds of user-contributed scripts and articles; tagged and searchable.
- NuTutorials PHP Section - Categorized tutorials (~500) for PHP.
- Beginners PHP - Tutorials and resources.
- Symfony - Advanced MVC framework for PHP.
- SELFPHP - A very good PHP portal. Searchable documentation with examples, PHP Code Book, Code library, forums and Tutorials.
- PHP Books - A large collection of PHP books.
- PHP Screencast Tutorials - Screencasts, PDF, and source code for learning PHP.
- PHP Sample Code on Zedwood - Generate PDFs, XLS files, CSVs, parse xml, analyze mp3s all with php
- PHPIndonesia.com - The leading PHP knowledge base in Indonesia that using Wiki format
Contributors
- Jatkins: PHP 4 & 5 examples, and PHP 5 only examples.
- Douglas Clifton: New editor. Hoping to add more soon!
- James Booker: Minor corrections. Hoping to add more content in time.
- Spoom: Original for and switch...case articles, various reformatting and additions.
- IBB: See profile.
- Kander: Minor edits to the PHP and MySQL section.
- Qrc: Started initial page for Configuration:Register Globals.
- Bumppo: Started object-oriented PHP section
- programmabilities: Minor edits.
- ahc: Significant editing to existing sections.
- Liu Chang: Added "Setting up PHP" section. Hoping to add more in time
- Monkeymatt: Fixed some typos, fixed the templating section.
- Charles Iliya Krempeaux: Added PHP CLI section. Minor cleanups on existing sections. Added PHP-GTK section.
- scorphus: Fixes in installation procedures on Debian systems (to conform standards - we now use aptitude)
- immortalgeek: Added some php web links to Resource section.
- Wykis: Working on Smarty section, foreach, arrays, sessions, all basic programming
- Bolo: working on Flat Frog section.
- KGR Sajid: PHP5 editor. Also edited some other minor things.
- banzaimonkey: Formatting changes and editing.
- Meemo: Some small edits, fixing a few scripts and the spelling of Rumpelstiltskin. ;)
- Justin Kestelyn: Added a link in Resources.
- Sam Wilson: Elaboration on session fixation.
- http://www.zeuscoder.com -PHP, MySQL Training and development.