xxiii
Introduction
I’ve always felt concerned about unduly raising readers’ expectations with the subtitle of this book, Dynamic
Web Design Made Easy. PHP is not difficult, but nor is it like an instant cake mix: just add water and stir.
Every web site is different, so it’s impossible to grab a script, paste it into a web page, and expect it to work.
My aim is to help web designers with little or no knowledge of programming gain the confidence to dive into
the code and adjust it to their own requirements.
You don’t need any previous experience of PHP or another programming language to be able to use this
book; but it does move at a fast pace. After the first few chapters, you start working with relatively advanced
features of the language. Don’t let that put you off. Regard it as a challenge. This book is called PHP Solutions
for a reason—to provide solutions to practical problems rather than offer a series of meaningless exercises.
How you use the book will depend on your level of experience. If you’re new to PHP and programming,
start at the beginning and work your way gradually through the book. It’s organized as a logical sequence
with each chapter building on knowledge and skills gained in previous ones. When describing the code, I try
to explain what it does in plain language. I avoid jargon, but not technical terms (each new term is described
briefly when it’s first encountered). If you have more experience with PHP, you can probably jump straight
into whatever interests you. Even if the code makes sense to you without my explanations, I hope the text
throws light onto my thought processes when solving a problem with PHP.
A Small but Significant Change
There’s a subtle difference in the title of this edition. We’ve snuck a 7 into it. The previous editions were
called simply PHP Solutions; but my editor and I decided to make it crystal clear that this edition focuses
exclusively on PHP 7, the only version of PHP that’s currently supported. One of the great advantages of
PHP 7, apart from greatly improved speed, is that it’s almost completely backward compatible with PHP
5—in other words, virtually all the code that ran on PHP 5 can be transferred seamlessly to PHP 7. However,
it doesn’t work the other way round. This book makes use of a lot of features that are new to PHP 7. So, if you
try to run the code in PHP 7 Solutions on an old server still running PHP 5, you’ll soon run into problems.
Because hosting companies are often slow to upgrade the version of PHP that they offer, previous editions
of this book provided workarounds for older versions of PHP. This time, I don’t. For some readers, this means
code that works perfectly in a local testing environment is likely to break when it’s uploaded to a remote server.
As of mid-2019, more than two out of every three web servers running PHP are still using PHP 5, even though
all official support for PHP 5 ended in December 2018. Not even the original version of PHP 7 (7.0) is supported
any longer. The code in this book was developed on PHP 7.3, although with one minor exception noted in
Chapter 10 (complete with workaround), everything will run on PHP 7.2 or later.
PHP isn’t like that old car you’ve been running for years and doesn’t need changing as long as you give
it sufficient love and oil. PHP is constantly being updated, not only to add new features but also to fix bugs
and security issues. Even if you’re not interested in the new features, you should be interested in security
fixes. The Internet can be a wild place with lots of unsavory characters trying to find exploitable holes in
web sites. This book contains a lot of advice on security, but it can’t protect you from security issues that
are uncovered in the PHP core. Making sure that your remote server is kept up to date is an indispensable
insurance policy to minimize your risks. And it shouldn’t cost you any extra because PHP is free (although
hosting companies charge for their services).