Introduction 1. Manipulating Strings. Comparing Strings Checking Usernames and Passwords Converting Strings into Hypertext Markup Language (HTML) Using Line Breaks Encrypting Strings Checksumming Strings Extracting Substrings Protecting Email Addresses Using ASCII Codes Scanning Formatted Strings Getting Detailed Information About Variables Searching in Strings Using POSIX Regular Expressions Using Perl-Compatible Regular Expressions Finding Tags with Regular Expressions Validating Mandatory Input Validating Numbers (and Other Data Types) Validating Email Addresses Search and Replace 2. Working with Arrays. Accessing All Elements of Numerical Arrays Accessing All Elements of Associative Arrays Accessing All Array Elements in Nested Arrays Turning an Array into Variables Converting Strings to Arrays Converting Arrays to Strings Sorting Arrays Alphabetically Sorting Associative Arrays Alphabetically Sorting Nested Arrays Sorting Nested Associative Arrays Sorting IP Addresses (as a Human Would) Sorting Anything Sorting with Foreign Languages Applying an Effect to All Array Elements Filtering Arrays Getting Random Elements Out of Arrays 3. Date and Time. Using Text Within date() Automatically Localizing Dates Manually Localizing Dates Using the Current Date the U.S./U.K./European Way Formatting a Specific Date Validating a Date Calculating a Relative Date Creating a Sortable Time Stamp Converting a String into a Date Determining Sunrise and Sunset Using Date and Time for Benchmarks Using Form Fields for Date Selection Create Self-updating Form Fields for Date Selection Calculating the Difference Between Two Dates Using GMT Date/Time Information 4. Interacting with Web Forms. Sending Form Data Back to the Current Script Reading Out Form Data Coping with "Magic Quotes" Checking Whether a Form Has Been Submitted Saving Form Data into a Cookie Prefilling Text Fields and Password Fields Prefilling Multiline Text Fields Preselecting Radio Buttons Preselecting Check Boxes Preselecting Selection Lists Preselecting Multiple Selection Lists Processing Graphical Submit Buttons Checking Mandatory Fields Checking Selection Lists Writing All Form Data into a File Sending All Form Data Via Email Getting Information About File Uploads Moving Uploaded Files to a Safe Location 5. Remembering Users (Cookies and Sessions). Understanding Cookies Creating a Cookie Reading Out Cookies Getting Rid of "Magic Quotes" in Cookies Setting a (Reasonable) Expiry Date Setting a Client-Specific Expiry Date Deleting a Cookie Making Cookies Accessible for Several Domains Checking Whether the Client Supports Cookies Saving Multiple Data in One Cookie Saving the User's Language Preference Understanding Sessions Where to Store the Sessions How to Maintain the Session State Activating Sessions Reading and Writing Sessions Closing Sessions Changing the Session ID Creating Dynamic, Session-Aware Links Implementing a Custom Session Management Creating a Secured Area with Sessions Creating a Secured Area Without Sessions 6. Using Files on the Server File System. Opening and Closing Files Reading from Files Writing to Files Locking Files Using Relative Paths for File Access Avoiding Security Traps with File Access Working with CSV Data Parsing INI Files Retrieving File Information Copying, Moving, and Deleting Files Browsing the File System Using PHP Streams Using Bzip2 Archives Returning Files with an HTTP Request 7. Making Data Dynamic. Connecting to MySQL Connecting to MySQLi Sending SQL to MySQL Prepared Statements with MySQL Retrieving Results of a Query to MySQL Connecting to SQLite Sending SQL to SQLite Retrieving Results of a Query to SQLite Connecting to PostgreSQL Sending SQL to PostgreSQL Updating Data in PostgreSQL Retrieving Results of a Query to PostgreSQL Connecting to Oracle Sending SQL to Oracle Retrieving Results of a Query to Oracle Connecting to MSSQL Sending SQL to MSSQL Retrieving Results of a Query to MSSQL Connecting to Firebird Sending SQL to Firebird Retrieving Results of a Query to Firebird Connecting Via PDO Sending SQL Via PDO Retrieving Results of a Query Via PDO 8. Using XML. Parsing XML with SAX Using DOM in PHP 4 to Read XML Using DOM in PHP 5 to Read XML Using DOM in PHP 4 to Write XML Using DOM in PHP 5 to Write XML Using SimpleXML Transforming XML with XSL and PHP 4 Transforming XML with XSL and PHP 5 Validating XML 9. Communicating with Others. Connecting with HTTP Servers Connecting with FTP Servers Checking Whether a Server Is Still Reacting Creating a Web Service with PEAR::XML-RPC Consuming a Web Service with PEAR::XML-RPC Creating a Web Service with NuSOAP Automatically Generating WSDL with NuSOAP Consuming a Web Service with NuSOAP Creating a Web Service with PEAR::SOAP Automatically Generating WSDL with PEAR::SOAP Consuming a Web Service with PEAR::SOAP Creating a Web Service with PHP 5's SOAP Extension Consuming a Web Service with PHP 5's SOAP Extension Index.