Skip to main content.

Web Based Programming Tutorials

Homepage | Forum - Join the forum to discuss anything related to programming! | Programming Resources


I. Getting Started
1. Introduction
2. A simple tutorial
3. Installation
4. Configuration
5. Security
II. Language Reference
6. Basic syntax
7. Types
8. Variables
9. Constants
10. Expressions
11. Operators
12. Control Structures
13. Functions
14. Classes and Objects
15. References Explained
III. Features
16. HTTP authentication with PHP
17. Cookies
18. Handling file uploads
19. Using remote files
20. Connection handling
21. Persistent Database Connections
22. Safe Mode
23. Using PHP from the command line
IV. Function Reference
I. Apache-specific Functions
II. Array Functions
III. Aspell functions [deprecated]
IV. BCMath Arbitrary Precision Mathematics Functions
V. Bzip2 Compression Functions
VI. Calendar functions
VII. CCVS API Functions
VIII. COM support functions for Windows
IX. Class/Object Functions
X. ClibPDF functions
XI. Crack functions
XII. CURL, Client URL Library Functions
XIII. Cybercash payment functions
XIV. Cyrus IMAP administration functions
XV. Character type functions
XVI. Database (dbm-style) abstraction layer functions
XVII. Date and Time functions
XVIII. dBase functions
XIX. DBM Functions [deprecated]
XX. dbx functions
XXI. DB++ Functions
XXII. Direct IO functions
XXIII. Directory functions
XXIV. DOM XML functions
XXV. .NET functions
XXVI. Error Handling and Logging Functions
XXVII. FrontBase Functions
XXVIII. filePro functions
XXIX. Filesystem functions
XXX. Forms Data Format functions
XXXI. FriBiDi functions
XXXII. FTP functions
XXXIII. Function Handling functions
XXXIV. Gettext
XXXV. GMP functions
XXXVI. HTTP functions
XXXVII. Hyperwave functions
XXXVIII. Hyperwave API functions
XXXIX. iconv functions
XL. Image functions
XLI. IMAP, POP3 and NNTP functions
XLII. Informix functions
XLIII. InterBase functions
XLIV. Ingres II functions
XLV. IRC Gateway Functions
XLVI. PHP / Java Integration
XLVII. LDAP functions
XLVIII. Mail functions
XLIX. mailparse functions
L. Mathematical Functions
LI. Multi-Byte String Functions
LII. MCAL functions
LIII. Mcrypt Encryption Functions
LIV. MCVE Payment Functions
LV. Mhash Functions
LVI. Mimetype Functions
LVII. Microsoft SQL Server functions
LVIII. Ming functions for Flash
LIX. Miscellaneous functions
LX. mnoGoSearch Functions
LXI. mSQL functions
LXII. MySQL Functions
LXIII. Improved MySQL Extension
LXIV. Mohawk Software session handler functions
LXV. muscat functions
LXVI. Network Functions
LXVII. Ncurses terminal screen control functions
LXVIII. Lotus Notes functions
LXIX. Unified ODBC functions
LXX. Object Aggregation/Composition Functions
LXXI. Oracle 8 functions
LXXII. OpenSSL functions
LXXIII. Oracle functions
LXXIV. Ovrimos SQL functions
LXXV. Output Control Functions
LXXVI. Object property and method call overloading
LXXVII. PDF functions
LXXVIII. Verisign Payflow Pro functions
LXXIX. PHP Options&Information
LXXX. POSIX functions
LXXXI. PostgreSQL functions
LXXXII. Process Control Functions
LXXXIII. Program Execution functions
LXXXIV. Printer functions
LXXXV. Pspell Functions
LXXXVI. GNU Readline
LXXXVII. GNU Recode functions
LXXXVIII. Regular Expression Functions (Perl-Compatible)
LXXXIX. qtdom functions
XC. Regular Expression Functions (POSIX Extended)
XCI. Semaphore, Shared Memory and IPC Functions
XCII. SESAM database functions
XCIII. Session handling functions
XCIV. Shared Memory Functions
XCV. Shockwave Flash functions
XCVI. SNMP functions
XCVII. Socket functions
XCVIII. Stream functions
XCIX. String functions
C. Sybase functions
CI. Tokenizer functions
CII. URL Functions
CIII. Variable Functions
CIV. vpopmail functions
CV. W32api functions
CVI. WDDX Functions
CVII. XML parser functions
CVIII. XML-RPC functions
CIX. XSLT functions
CX. YAZ functions
CXI. YP/NIS Functions
CXII. Zip File Functions (Read Only Access)
CXIII. Zlib Compression Functions
V. Zend API
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
VI. PHP API: Interfaces for extension writers
43. Streams API for PHP Extension Authors
VII. FAQ: Frequently Asked Questions
44. General Information
45. Mailing lists
46. Obtaining PHP
47. Database issues
48. Installation
49. Build Problems
50. Using PHP
51. PHP and HTML
52. PHP and COM
53. PHP and other languages
54. Migrating from PHP 2 to PHP 3
55. Migrating from PHP 3 to PHP 4
56. Miscellaneous Questions
VIII. Appendixes
A. History of PHP and related projects
B. Migrating from PHP 3 to PHP 4
C. Migrating from PHP/FI 2 to PHP 3
D. Debugging PHP
E. Extending PHP 3
F. List of Function Aliases
G. List of Reserved Words
H. List of Resource Types
I. List of Supported Protocols/Wrappers
J. List of Supported Socket Transports
K. PHP type comparison tables
L. List of Parser Tokens
M. About the manual
N. Function Index
IX. HTML Help Edition
57. About This Edition
58. Using PHP Manual CHM Edition
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits


PHP, which stands for "PHP: Hypertext Preprocessor" is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. Its syntax draws upon C, Java, and Perl, and is easy to learn. The main goal of the language is to allow web developers to write dynamically generated webpages quickly, but you can do much more with PHP.

This manual consists primarily of a function reference, but also contains a language reference, explanations of some of PHP's major features, and other supplemental information.

You can download this manual in several formats at The downloads are updated as the content changes. More information about how this manual is developed can be found in the 'About the manual' appendix.

See also PHP History

Chapter 1. Introduction
Table of Contents
What is PHP?
What can PHP do?
What is PHP?
PHP (recursive acronym for "PHP: Hypertext Preprocessor") is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

Simple answer, but what does that mean? An example:

Example 1-1. An introductory example


echo "Hi, I'm a PHP script!";


Notice how this is different from a script written in other languages like Perl or C -- instead of writing a program with lots of commands to output HTML, you write an HTML script with some embedded code to do something (in this case, output some text). The PHP code is enclosed in special start and end tags that allow you to jump into and out of "PHP mode".

What distinguishes PHP from something like client-side JavaScript is that the code is executed on the server. If you were to have a script similar to the above on your server, the client would receive the results of running that script, with no way of determining what the underlying code may be. You can even configure your web server to process all your HTML files with PHP, and then there's really no way that users can tell what you have up your sleeve.

The best things in using PHP are that it is extremely simple for a newcomer, but offers many advanced features for a professional programmer. Don't be afraid reading the long list of PHP's features. You can jump in, in a short time, and start writing simple scripts in a few hours.

Although PHP's development is focused on server-side scripting, you can do much more with it. Read on, and see more in the What can PHP do? section.

What can PHP do?
Anything. PHP is mainly focused on server-side scripting, so you can do anything any other CGI program can do, such as collect form data, generate dynamic page content, or send and receive cookies. But PHP can do much more.

There are three main fields where PHP scripts are used.

Server-side scripting. This is the most traditional and main target field for PHP. You need three things to make this work. The PHP parser (CGI or server module), a webserver and a web browser. You need to run the webserver, with a connected PHP installation. You can access the PHP program output with a web browser, viewing the PHP page through the server. See the installation instructions section for more information.

Command line scripting. You can make a PHP script to run it without any server or browser. You only need the PHP parser to use it this way. This type of usage is ideal for scripts regularly executed using cron (on *nix or Linux) or Task Scheduler (on Windows). These scripts can also be used for simple text processing tasks. See the section about Command line usage of PHP for more information.

Writing client-side GUI applications. PHP is probably not the very best language to write windowing applications, but if you know PHP very well, and would like to use some advanced PHP features in your client-side applications you can also use PHP-GTK to write such programs. You also have the ability to write cross-platform applications this way. PHP-GTK is an extension to PHP, not available in the main distribution. If you are interested in PHP-GTK, visit its own website.

PHP can be used on all major operating systems, including Linux, many Unix variants (including HP-UX, Solaris and OpenBSD), Microsoft Windows, Mac OS X, RISC OS, and probably others. PHP has also support for most of the web servers today. This includes Apache, Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, and many others. For the majority of the servers PHP has a module, for the others supporting the CGI standard, PHP can work as a CGI processor.

So with PHP, you have the freedom of choosing an operating system and a web server. Furthermore, you also have the choice of using procedural programming or object oriented programming, or a mixture of them. Although not every standard OOP feature is realized in the current version of PHP, many code libraries and large applications (including the PEAR library) are written only using OOP code.

With PHP you are not limited to output HTML. PHP's abilities includes outputting images, PDF files and even Flash movies (using libswf and Ming) generated on the fly. You can also output easily any text, such as XHTML and any other XML file. PHP can autogenerate these files, and save them in the file system, instead of printing it out, forming a server-side cache for your dynamic content.

One of the strongest and most significant feature in PHP is its support for a wide range of databases. Writing a database-enabled web page is incredibly simple. The following databases are currently supported:

Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm

We also have a DBX database abstraction extension allowing you to transparently use any database supported by that extension. Additionally PHP supports ODBC, the Open Database Connection standard, so you can connect to any other database supporting this world standard.

PHP also has support for talking to other services using protocols such as LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows) and countless others. You can also open raw network sockets and interact using any other protocol. PHP has support for the WDDX complex data exchange between virtually all Web programming languages. Talking about interconnection, PHP has support for instantiation of Java objects and using them transparently as PHP objects. You can also use our CORBA extension to access remote objects.

PHP has extremely useful text processing features, from the POSIX Extended or Perl regular expressions to parsing XML documents. For parsing and accessing XML documents, we support the SAX and DOM standards. You can use our XSLT extension to transform XML documents.

While using PHP in the ecommerce field, you'll find the Cybercash payment, CyberMUT, VeriSign Payflow Pro and CCVS functions useful for your online payment programs.

At last but not least, we have many other interesting extensions, the mnoGoSearch search engine functions, the IRC Gateway functions, many compression utilities (gzip, bz2), calendar conversion, translation...

As you can see this page is not enough to list all the features and benefits PHP can offer. Read on in the sections about installing PHP, and see the function reference part for explanation of the extensions mentioned here.

Click here to read "PHP Manual" (3 MB ~ To download Right click > Save Target As...)