Most of the books I've looked at on PHP have tied it in a three-legged race with mySQL. I was looking for something that taught the core language itself and its place in applications besides those in which it is teamed with mySQL. This appears to be that book. The core PHP language is very good at handling strings and arrays and objects. Along with standard and optional extension modules, a PHP application can work with databases like Oracle and MySQL, draw graphs, create PDF files, and parse XML files. You can write your own PHP extension modules in C to provide a PHP interface to the functions in an existing code library. You can also run PHP on Windows and use it to control other Windows applications such as Word and Excel with COM or interact with databases using ODBC. This book is a guide to all of these capabiliies of the PHP language, as well as a tutorial on the core language itself. This book assumes you have a working knowledge of HTML and that you know how to program - preferably in either C, C++, or Perl.
The first six chapters teach the core language itself. The six chapters include a dedicated introduction and a chapter on language basics which acts as a concise guide to PHP program elements such as identifiers, data types, operators, and flow-control statements. The next four chapters after that concern functions, strings, arrays, and objects respectively. The following is an outline of the remaining chapters of the book:
Chapter 7, "Web Techniques" - PHP was designed as a web-scripting language and, although it is possible to use it in purely command-line and GUI scripts, the Web accounts for the vast majority of PHP uses. A dynamic web site may have forms, sessions, and sometimes redirection, and this chapter explains how to implement those things in PHP. You'll learn how PHP provides access to form parameters and uploaded files, how to send cookies and redirect the browser, and how to use PHP sessions.
Chapter 8, "Databases" - PHP has support for over 20 databases, including the most popular commercial and open source varieties. This chapter covers how to access databases from PHP. The focus is on the PEAR DB system, which lets you use the same functions to access any database, rather than on the myriad database-specific extensions. In this chapter, you'll learn how to fetch data from the database, how to store data in the database, and how to handle errors. The chapter finishes with a sample application that shows how to put various database techniques into action.
Chapter 9, Graphics - Many web images are dynamically created, such as graphs of stock performance. PHP supports the creation of such graphics with the GD and Imlib2 extensions. This chapter demonstrates how to generate images dynamically with PHP, using the GD extension.
Chapter 10, PDF - PHP has several libraries for generating PDF documents. This chapter shows how to use the popular fpdf library. The FPDF library is a set of PHP code you include in your scripts with the required function, so it doesn't require any server-side configuration or support, meaning you can use it even without support from your host.
Chapter 11, XML - This chapter shows how to use the XML parser bundled with PHP, as well as how to use the optional XSLT extension to transform XML. Generating XML is also briefly covered here.
Chapter 12, Security - PHP's convenience is a double-edged sword. The very features that let you quickly write programs in PHP can open doors for those who would break into your systems. It's important to understand that PHP itself is neither secure nor insecure. The security of your web applications is entirely determined by the code you write. This chapter gives tips on making that code secure.
Chapter 13, Application Techniques - This chapter demonstrates some techniques you may find useful in your PHP applications, such as code libraries, templating systems, efficient output handling, error handling, and performance tuning.
Chapter 14, Extending PHP - This chapter demonstrates writing C language extensions to PHP. Although most functionality can be written in the PHP language, sometimes you need the extra speed and control you get from the C API. C is the mechanism for creating the thin middle layer between PHP and any third-party C library. For example, to be able to talk to the MySQL database server, PHP needs to implement the MySQL socket protocol. It would be a lot of work to figure out this protocol and talk to MySQL directly using "fsockopen" and "fputs" from a PHP script. Instead, the same goal can be accomplished with a thin layer of functions written in C that translate MySQL's C API, implemented in the libmysqlclient library included in MySQL, into PHP language-level function calls. This thin layer of functions is known as a PHP extension.
Chapter 15, PHP on Windows - The most common reason to use PHP on Windows is to develop web applications on your Windows desktop. What can be confusing at first is the number of various configurations and choices available. There are many variants of the Windows operating system, and many web servers are available for those operating systems. PHP itself can run as either a DLL or a script. This chapter explains how to install, configure, and make the best use of PHP on Windows systems. One approach is taken and followed to its conclusion, although there are a number of different ways to arrive at the same destination. Also explained is how to take advantage of the features unique to the Windows platform, such as connecting to databases with ODBC and controlling Microsoft Office applications through COM.
As you can see this book really provides two functions. It is a very thorough tutorial and reference on the PHP programming language, and it is also a tutorial and showcase of all of the different uses PHP can have. Well commented code and instructions are provided throughout. I highly recommend it to anyone who needs to learn the PHP programming language as well as those that know the basics and want to put the language to work. Just make sure you know HTML and programming - preferably both C and PERL - first.