| About the Author |
|
ix | |
| Acknowledgments |
|
xi | |
| Introduction |
|
xiii | |
| Part One Databases |
|
1 | (52) |
|
Chapter 1 Accessing Databases with DB |
|
|
3 | (20) |
|
Exploring a Simple DB Example |
|
|
3 | (1) |
|
|
|
4 | (1) |
|
Sending Queries and Retrieving Results |
|
|
5 | (4) |
|
Understanding Quoting and Placeholders |
|
|
9 | (4) |
|
Examining Data Retrieval Convenience Methods |
|
|
13 | (3) |
|
Understanding Query Information |
|
|
16 | (1) |
|
Running a Query Multiple Times |
|
|
17 | (3) |
|
|
|
20 | (1) |
|
Introducing Error Handling |
|
|
20 | (3) |
|
Chapter 2 Accessing Databases with ADODB |
|
|
23 | (30) |
|
Connecting and Simple Queries |
|
|
23 | (4) |
|
|
|
27 | (5) |
|
Understanding Error Handling |
|
|
32 | (3) |
|
|
|
35 | (1) |
|
|
|
36 | (13) |
|
|
|
49 | (1) |
|
|
|
50 | (3) |
| Part Two HTML |
|
53 | (96) |
|
Chapter 3 Using HTML_OuickForm for Form Processing |
|
|
55 | (38) |
|
Creating and Displaying a Form |
|
|
55 | (23) |
|
Processing Submitted Data |
|
|
78 | (4) |
|
|
|
82 | (11) |
|
Chapter 4 Templating with Smarty |
|
|
93 | (56) |
|
Installing and Configuring Smarty |
|
|
94 | (2) |
|
Understanding Basic Smarty Concepts |
|
|
96 | (14) |
|
Implementing Conditional Logic |
|
|
110 | (3) |
|
Looping and Cycling Through Data |
|
|
113 | (11) |
|
Including Other Files and Templates |
|
|
124 | (5) |
|
|
|
129 | (11) |
|
|
|
140 | (4) |
|
|
|
144 | (5) |
| Part Three XML |
|
149 | (74) |
|
Chapter 5 Performing Event-Based XML Parsing with XML_Parser |
|
|
151 | (20) |
|
Handling Tags and Character Data |
|
|
152 | (8) |
|
Handling Processing Instructions |
|
|
160 | (3) |
|
|
|
163 | (2) |
|
Using Per-Element Methods |
|
|
165 | (3) |
|
Specifying Character Sets |
|
|
168 | (3) |
|
Chapter 6 Developing Lightweight Web Services with XML_RPC |
|
|
171 | (16) |
|
|
|
171 | (6) |
|
Calling XML_RPC Procedures on Another Server |
|
|
177 | (3) |
|
|
|
180 | (7) |
|
Chapter 7 Developing Heavyweight Web Services with SOAP |
|
|
187 | (28) |
|
|
|
187 | (1) |
|
|
|
188 | (1) |
|
|
|
188 | (11) |
|
|
|
199 | (14) |
|
|
|
213 | (2) |
|
Chapter 8 Performing Easier XML Parsing with SimpleXML |
|
|
215 | (8) |
|
Creating SimpleXML Objects |
|
|
215 | (2) |
|
Working with SimpleXML Objects |
|
|
217 | (3) |
|
|
|
220 | (1) |
|
|
|
221 | (2) |
| Part Four Networking |
|
223 | (40) |
|
|
|
225 | (16) |
|
Sending Plain-Text Mail Messages with PEAR Mail |
|
|
225 | (4) |
|
Sending MIME Ma~l Messages with Mail_mime |
|
|
229 | (12) |
|
Chapter 10 Working with Authentication, Users, and Passwords |
|
|
241 | (22) |
|
|
|
241 | (19) |
|
|
|
260 | (3) |
| Part Five Debugging, Caching, and Optimizing |
|
263 | (68) |
|
Chapter 11 Understanding PHP Internals |
|
|
265 | (10) |
|
Going from Source File to Output |
|
|
266 | (6) |
|
Seeing How a Code Cache Works |
|
|
272 | (1) |
|
Seeing How a Debugger Works |
|
|
272 | (1) |
|
Examining Some Differences Between the Internals of PHP 4 and PHP 5 |
|
|
273 | (2) |
|
Chapter 12 Profiling and Debugging with Xdebug |
|
|
275 | (22) |
|
|
|
275 | (1) |
|
|
|
276 | (7) |
|
|
|
283 | (3) |
|
|
|
286 | (11) |
|
Chapter 13 Accelerating with Code Caches |
|
|
297 | (34) |
|
Working with APC: The Alternative PHP Cache |
|
|
298 | (9) |
|
Working with ionCube PHP Accelerator |
|
|
307 | (10) |
|
Working with Turck MMCache |
|
|
317 | (11) |
|
Benchmarking Cache Performance |
|
|
328 | (3) |
| Index |
|
331 | |