| | Copyright |
| | About the Author |
| | Preface |
| | | Audience |
| | | Assumptions |
| | | Contents of This Book |
| | | Conventions Used in This Book |
| | | Using Code Examples |
| | | Safari® Enabled |
| | | How to Contact Us |
| | | Acknowledgments |
| | Chapter 1. Introduction to PHP |
| | | Section 1.1. PHP History |
| | | Section 1.2. Advantages of PHP |
| | | Section 1.3. Getting Help |
| | | Section 1.4. Getting Certified |
| | | Section 1.5. PHP Resources |
| | Chapter 2. Installing PHP |
| | | Section 2.1. Installing on Windows |
| | | Section 2.2. Installing on Unix |
| | | Section 2.3. Testing Your Configuration |
| | | Section 2.4. System Configuration |
| | Chapter 3. The PHP Interpreter |
| | | Section 3.1. Running PHP Scripts |
| | | Section 3.2. Extending PHP |
| | | Section 3.3. PEAR |
| | | Section 3.4. Abnormal Script Termination |
| | Chapter 4. The PHP Language |
| | | Section 4.1. The Basics of PHP |
| | | Section 4.2. Variables |
| | | Section 4.3. Whitespace |
| | | Section 4.4. Heredoc |
| | | Section 4.5. Brief Introduction to Variable Types |
| | | Section 4.6. Code Blocks |
| | | Section 4.7. Opening and Closing Code Islands |
| | | Section 4.8. Comments |
| | | Section 4.9. Conditional Statements |
| | | Section 4.10. Case Switching |
| | | Section 4.11. Loops |
| | | Section 4.12. Infinite Loops |
| | | Section 4.13. Special Loop Keywords |
| | | Section 4.14. Loops Within Loops |
| | | Section 4.15. Mixed-Mode Processing |
| | | Section 4.16. Including Other Files |
| | | Section 4.17. Functions |
| | Chapter 5. Variables and Constants |
| | | Section 5.1. Types of Data |
| | | Section 5.2. True or False |
| | | Section 5.3. Strings |
| | | Section 5.4. Integers |
| | | Section 5.5. Floats |
| | | Section 5.6. Automatic Type Conversion |
| | | Section 5.7. Checking Whether a Variable Is Set: isset( ) |
| | | Section 5.8. Variable Scope |
| | | Section 5.9. Variable Variables |
| | | Section 5.10. Superglobals |
| | | Section 5.11. Using $_ENV and $_SERVER |
| | | Section 5.12. References |
| | | Section 5.13. Constants |
| | | Section 5.14. Arrays |
| | Chapter 6. Operators |
| | | Section 6.1. Arithmetic Operators |
| | | Section 6.2. Assignment Operators |
| | | Section 6.3. String Operators |
| | | Section 6.4. Bitwise Operators |
| | | Section 6.5. Comparison Operators |
| | | Section 6.6. Incrementing and Decrementing Operators |
| | | Section 6.7. Logical Operators |
| | | Section 6.8. Some Operator Examples |
| | | Section 6.9. The Ternary Operator |
| | | Section 6.10. The Execution Operator |
| | | Section 6.11. Operator Precedence and Associativity |
| | Chapter 7. Function Reference |
| | | Section 7.1. Undocumented Functions |
| | | Section 7.2. Handling Non-English Characters |
| | Chapter 8. Object-Oriented PHP |
| | | Section 8.1. Conceptual Overview |
| | | Section 8.2. Classes |
| | | Section 8.3. Objects |
| | | Section 8.4. Properties |
| | | Section 8.5. The 'this' Variable |
| | | Section 8.6. Objects Within Objects |
| | | Section 8.7. Access Control Modifiers |
| | | Section 8.8. Object Type Information |
| | | Section 8.9. Class Type Hints |
| | | Section 8.10. Constructors and Destructors |
| | | Section 8.11. Copying Objects |
| | | Section 8.12. Comparing Objects with == and === |
| | | Section 8.13. Saving Objects |
| | | Section 8.14. Magic Methods |
| | | Section 8.15. Static Class Methods and Properties |
| | | Section 8.16. Helpful Utility Functions |
| | | Section 8.17. Interfaces |
| | | Section 8.18. Dereferencing Object Return Values |
| | Chapter 9. HTML Forms |
| | | Section 9.1. What Does It Mean to Be Dynamic? |
| | | Section 9.2. Designing a Form |
| | | Section 9.3. Handling Data |
| | | Section 9.4. Splitting Forms Across Pages |
| | | Section 9.5. Validating Input |
| | | Section 9.6. Form Design |
| | | Section 9.7. Summary |
| | Chapter 10. Cookies and Sessions |
| | | Section 10.1. Cookies Versus Sessions |
| | | Section 10.2. Using Cookies |
| | | Section 10.3. Using Sessions |
| | | Section 10.4. Storing Complex Data Types |
| | Chapter 11. Output Buffering |
| | | Section 11.1. Why Use Output Buffering? |
| | | Section 11.2. Getting Started |
| | | Section 11.3. Reusing Buffers |
| | | Section 11.4. Stacking Buffers |
| | | Section 11.5. Flushing Stacked Buffers |
| | | Section 11.6. Reading Buffers |
| | | Section 11.7. Other OB Functions |
| | | Section 11.8. Flushing Output |
| | | Section 11.9. Compressing Output |
| | | Section 11.10. URL Rewriting |
| | Chapter 12. Security |
| | | Section 12.1. Security Tips |
| | | Section 12.2. Encryption |
| | Chapter 13. Files |
| | | Section 13.1. Reading Files |
| | | Section 13.2. Creating and Changing Files |
| | | Section 13.3. Moving, Copying, and Deleting Files |
| | | Section 13.4. Other File Functions |
| | | Section 13.5. Checking Whether a File Exists |
| | | Section 13.6. Retrieving File Time Information |
| | | Section 13.7. Dissecting Filename Information |
| | | Section 13.8. Handling File Uploads |
| | | Section 13.9. Locking Files with flock( ) |
| | | Section 13.10. Reading File Permissions and Status |
| | | Section 13.11. Changing File Permissions and Ownership |
| | | Section 13.12. Working with Links |
| | | Section 13.13. Working with Directories |
| | | Section 13.14. Remote Files |
| | | Section 13.15. File Checksums |
| | | Section 13.16. Parsing a Configuration File |
| | Chapter 14. Databases |
| | | Section 14.1. Using MySQL with PHP |
| | | Section 14.2. PEAR::DB |
| | | Section 14.3. SQLite |
| | | Section 14.4. Persistent Connections |
| | | Section 14.5. MySQL Improved |
| | Chapter 15. Regular Expressions |
| | | Section 15.1. Basic Regexps with preg_match( ) and preg_match_all( ) |
| | | Section 15.2. Regexp Character Classes |
| | | Section 15.3. Regexp Special Characters |
| | | Section 15.4. Words and Whitespace Regexps |
| | | Section 15.5. Storing Matched Strings |
| | | Section 15.6. Regular Expression Replacements |
| | | Section 15.7. Regular Expression Syntax Examples |
| | | Section 15.8. The Regular Expressions Coach |
| | Chapter 16. Manipulating Images |
| | | Section 16.1. Getting Started |
| | | Section 16.2. Choosing a Format |
| | | Section 16.3. Getting Arty |
| | | Section 16.4. More Shapes |
| | | Section 16.5. Complex Shapes |
| | | Section 16.6. Outputting Text |
| | | Section 16.7. Loading Existing Images |
| | | Section 16.8. Color and Image Fills |
| | | Section 16.9. Adding Transparency |
| | | Section 16.10. Using Brushes |
| | | Section 16.11. Basic Image Copying |
| | | Section 16.12. Scaling and Rotating |
| | | Section 16.13. Points and Lines |
| | | Section 16.14. Special Effects Using imagefilter( ) |
| | | Section 16.15. Interlacing an Image |
| | | Section 16.16. Getting an Image's MIME Type |
| | Chapter 17. Creating PDFs |
| | | Section 17.1. Getting Started |
| | | Section 17.2. Adding More Pages and More Style |
| | | Section 17.3. Adding Images |
| | | Section 17.4. PDF Special Effects |
| | | Section 17.5. Adding Document Data |
| | Chapter 18. Creating Flash |
| | | Section 18.1. A Simple Movie |
| | | Section 18.2. Flash Text |
| | | Section 18.3. Actions |
| | | Section 18.4. Animation |
| | Chapter 19. XML & XSLT |
| | | Section 19.1. SimpleXML |
| | | Section 19.2. Transforming XML Using XSLT |
| | Chapter 20. Network Programming |
| | | Section 20.1. Sockets |
| | | Section 20.2. HTTP |
| | | Section 20.3. Sending Mail |
| | | Section 20.4. Curl |
| | Chapter 21. Distributing Your Code |
| | | Section 21.1. Cross-Platform Code 1: Loading Extensions |
| | | Section 21.2. Cross-Platform Code 2: Using Extensions |
| | | Section 21.3. Cross-Platform Code 3: Path and Line Separators |
| | | Section 21.4. Cross-Platform Code 4: Coping with php.ini Differences |
| | | Section 21.5. Cross-Platform Code 5: Checking the PHP Version with phpversion( ) and version_compare( ) |
| | Chapter 22. Debugging |
| | | Section 22.1. The Most Basic Debugging Technique |
| | | Section 22.2. Making Assertions |
| | | Section 22.3. Triggering Your Own Errors |
| | | Section 22.4. Testing with php_check_syntax( ) |
| | | Section 22.5. Source Highlighting |
| | | Section 22.6. Handling MySQL Errors |
| | | Section 22.7. Exception Handling |
| | | Section 22.8. Backtracing Your Code |
| | | Section 22.9. Custom Error Handlers |
| | | Section 22.10. Custom Exception Handlers |
| | | Section 22.11. Using @ to Disable Errors |
| | | Section 22.12. phpinfo( ) |
| | | Section 22.13. Output Style |
| | Chapter 23. Performance |
| | | Section 23.1. Write Your Code Sensibly |
| | | Section 23.2. Use the Zend Optimizer |
| | | Section 23.3. Use a PHP Code Cache |
| | | Section 23.4. Compress Your Output |
| | | Section 23.5. Don't Use CGI |
| | | Section 23.6. Debug Your Code |
| | | Section 23.7. Use Persistent Connections |
| | | Section 23.8. Compile Right |
| | Colophon |
| | Index |