Rob Aley
Rob Aley
Oxford, UK
Any source code or other supplementary materials referenced by the author in this text are available to readers at www.apress.com/9781484222379 . For detailed information about how to locate your book’s source code, go to www.apress.com/source-code/ . Readers can also access source code at SpringerLink in the Supplementary Material section for each chapter.
ISBN 978-1-4842-2237-9
e-ISBN 978-1-4842-2238-6
DOI 10.1007/978-1-4842-2238-6
Library of Congress Control Number: 2016951308
© Robert Aley 2016
PHP CLI: Create Command Line Interface Scripts with PHP
Managing Director: Welmoed Spahr
Lead Editor: Steve Anglin
Technical Reviewer: Tri Phan
Editorial Board: Steve Anglin, Pramila Balan, Laura Berendson, Aaron Black, Louise Corrigan, Jonathan Gennick, Robert Hutchinson, Celestin Suresh John, Nikhil Karkal, James Markham, Susan McDermott, Matthew Moodie, Natalie Pao, Gwenan Spearing
Coordinating Editor: Mark Powers
Copy Editor: Kim Wimpsett
Compositor: SPi Global
Indexer: SPi Global
Artist: SPi Global
Cover image designed by Freepik
For information on translations, please e-mail [email protected] , or visit www.apress.com .
Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at www.apress.com/bulk-sales .
in author nameThis work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
Printed on acid-free paper
Isaac Newton said, “If I have seen further, it is by standing on the shoulders of giants.” This book builds on, and I hope adds to, the work of many others, the most notable of whom I would like to acknowledge here.
The authors of, and contributors to, the official PHP manual : An invaluable reference for PHP functions and syntax, to which I referred frequently during writing this book, both for fact checking and as an aide-memoir. Thanks!
The collective PHP wisdom of the Internet : For more than 12 years I’ve used you for learning, research, play, and profit. Too many sites and too many people to list here; if you’ve written about PHP on the Web, then you may well be one of them. Thanks!
My family : For allowing me a modicum of time to write this book and supporting me unconditionally in everything I do. Usually. If I ask first. And there’s not something more important going on. And usually with conditions. Thanks!
Rob Aley I’ve been programming in PHP since late 2000. Initially it wasn’t by choice because my preferred languages at the time were Perl and Delphi (also known as Object Pascal). Things began to change after I graduated from the University of Leeds with a degree in computer science in 1999 and started out in a career as a freelance web developer. After only a couple of months I was offered the opportunity to take over a (relatively speaking) substantial government website contract from a friend who was exiting the freelance world for the safer and saner world of full-time employment. The only catch was that several thousand lines of code had already been written, and they were written in a relatively new language called PHP. Oh, and the only other catch was that I had about a week to learn it before taking over the site. So, as was the way at the time, I popped down to the local Waterstones bookshop. (For the younger among you that’s where we used to get books. And we had to go out and get them. Or order online and wait days for them to be delivered.) With my paper copy of The Generic Beginner’s Complete Guide to PHP and MySQL for Dummies Compendium in hand (I may not have recalled the title completely correctly), I settled down with a pint of ale (I’m in Yorkshire at this point, remember) and set about reading it. A few days later I was coding like a pro (well, stuff was working), and 12 years later I haven’t looked back. After a varied career as a freelancer and starting up a couple of, er, startups (IT related and not) with varying (usually dismal) success, I spent the past ten years as a full-time programmer at the University of Oxford. My day job involved performing medium-scale data acquisition and management, doing statistical analysis, and providing user interfaces for researchers and the public. The majority of my development work was done in PHP, either developing new projects or gluing together other people’s software, systems, and databases. I’ve recently left the university to concentrate on writing books like this and providing consulting and training (in PHP, information governance, and related areas). But I’m still programming in PHP!
Throughout my career I’ve always used PHP for web development, but for desktop GUI work I initially used Delphi (and then Free-Pascal/Lazarus), complemented with bash shell scripting for other tasks. This was mainly because I learned them while at university. However, as PHP has matured, I’ve increasingly used it beyond the Web, and now I rarely use anything else for any programming or scripting task I encounter. Having been immersed in other languages such as C++, JavaScript, Fortran, and Lisp (and probably others that my brain has chosen deliberately not to remember) by necessity during university and in some of my freelance jobs, I can honestly say that PHP is now my language of choice, rather than of necessity.
When I’m not tied to a computer, I would like to say I have lots of varied and interesting hobbies. I used to have. I could write a whole book (which wouldn’t sell well) about where I’ve been and what I’ve done, and I’d like to think it’s made me a well-rounded person. But these days I don’t have any. In large part this is because of the demands of my three gorgeous young daughters, Ellie, Izzy, and Indy; my gorgeous wife, Parv; and my even more gorgeous cat, Mia. And I wouldn’t have it any other way. That’s what I tell myself, anyway.
Tri Phan is the founder of the Programming Learning Channel on YouTube. He has almost a decade of experience in the software industry. Specifically, he has worked for many outsourcing companies and has written applications in a variety of programming languages such as PHP, Java, and C#. In addition, he has more than six years of experience in teaching at international and technological centers such as Aptech, NIIT, and Kent College.