I. PROGRAMMING WITH PHP.
1. An Introduction to PHP.
The Origins of PHP. PHP Is Better Than Its Alternatives. Interfaces to External Systems. How PHP Works with the Web Server. Hardware and Software Requirements. What a PHP Script Looks Like. Saving Data for Later. Receiving User Input. Choosing Between Alternatives. Repeating Code.
2. Variables, Operators, and Expressions.
A Top-Down View. Data Types. Variables. Constants. Operators. Building Expressions.
3. Control Statements.
The if Statement. The ? Operator. The switch Statement. Loops. exit, die, and return. Exceptions. Declare.
Declaring a Function. The return Statement. Scope. Static Variables. Arguments. Recursion. Dynamic Function Calls.
Single-Dimensional Arrays. Indexing Arrays. Initializing Arrays. Multidimensional Arrays. Casting Arrays. The + Operator. Referencing Arrays Inside Strings.
6. Classes and Objects.
Object-Oriented Programming. The PHP 5 Object Model. Defining a Class. Constructors and Destructors. Cloning. Accessing Properties and Methods. Static Class Members. Access Types. Binding. Abstract Methods and Abstract Classes. User-Level Overloading. Class Autoloading. Object Serialization. Namespaces. The Evolution of the Zend Engine.
7. I/O and Disk Access.
HTTP Connections. Writing to the Browser. Output Buffering. Environment Variables. Getting Input from Forms. Passing Arrays in Forms. Cookies. File Uploads. Reading and Writing to Files. Sessions. The include and require Functions. Don't Trust User Input.
II. FUNCTIONAL REFERENCE.
8. Browser I/O.
Pregenerated Variables. Pregenerated Constants. Sending Text to the Browser. Output Buffering. Session Handling. HTTP Headers.
9. Operating System.
Files. Compressed File Functions. Direct I/O. Debugging. POSIX. Shell Commands. Process Control.
10. Network I/O.
General Network I/O. Sockets. FTP. Curl. SNMP.
Data Types, Constants, and Variables. Arrays. Objects and Classes. User Defined Functions.
12. Encoding and Decoding.
Strings. String Comparison. Encoding and Decoding. Compression. Encryption. Hashing. Spell Checking. Regular Expressions. Character Set Encoding.
Common Math. Random Numbers. Arbitrary-Precision Numbers.
14. Time and Date.
Time and Date. Alternative Calendars.
Configuration Directives. Configuration.
16. Images and Graphics.
Analyzing Images. Creating Images.
DBM-Style Database Abstraction. DBX. LDAP. MySQL. ODBC. Oracle. Postgres. Sybase and Microsoft SQL Server.
18. Object Layers.
COM. CORBA. Java.
Apache. IMAP. MnoGoSearch. OpenSSL. System V Messages. System V Semaphores. System V Shared Memory.
DOM XML. Expat XML. WDDX.
21. Sorting, Searching, and Random Numbers.
Sorting. Built-In Sorting Functions. Sorting with a Comparison Function. Searching. Indexing. Random Numbers. Random Identifiers. Choosing Banner Ads.
22. Parsing and String Evaluation.
Tokenizing. Regular Expressions. Defining Regular Expressions. Using Regular Expressions in PHP Scripts.
23. Database Integration.
Building HTML Tables from SQL Queries. Tracking Visitors with Session Identifiers. Storing Content in a Database. Database Abstraction Layers.
HTTP Authentication. Controlling the Browser's Cache. Setting Document Type. Email with Attachments. HTML Email. Verifying an Email Address.
25. Generating Graphics.
Dynamic Buttons. Generating Graphs on the Fly. Bar Graphs. Pie Charts. Stretching Single-Pixel Images.
IV. SOFTWARE ENGINEERING.
26. Integration with HTML.
Sprinkling PHP within an HTML Document. Using PHP to Output All HTML. Separating HTML from PHP. Generating HTML with PHP.
Writing Requirements Specifications. Writing Design Documents. Change Management. Modularization Using include. FreeEnergy. Templates. Application Frameworks. PEAR. URLs Friendly to Search Engines.
28. Efficiency and Debugging.
Optimization. Measuring Performance. Optimize the Slowest Parts. When to Store Content in a Database. Debugging Strategies. Simulating HTTP Connections. Output Buffering. Output Compression. Avoiding eval. Don't Load Extensions Dynamically. Improving Performance of MySQL Queries. Optimizing Disk-Based Sessions. Don't Pass by Reference (or, Don't Trust Your Instincts). Avoid Concatenation of Large Strings. Avoid Serving Large Files with PHP-Enabled Apache. Understanding Persistent Database Connections. Avoid Using exec, Backticks, and system If Possible. Use php.ini-recommended. Don't Use Regular Expressions Unless You Must. Optimizing Loops. IIS Configuration.
29. Design Patterns.
Patterns Defined. Singleton. Factory. Observer. Strategy.
A. Escape Sequences.
B. ASCII Codes.
D. PHP Tags.
E. PHP Compile-Time Configuration.
F. Internet Resources.
G. PHP Style Guide.