In this lesson you have learned how to write database-driven PHP scripts by using a database abstraction layer. In the
Lesson 21. Running PHP on the Command Line
Although PHP was conceived as a tool for creating dynamic web pages, because the PHP language is very powerful, it has also become popular for writing command scripts and even desktop programs.
In this lesson you will learn how to write PHP for use from the command line and create your own command scripts.
The Command-Line Environment
In order to use PHP from the command line, you need to have a PHP executable installed on your system. When running in a web environment, PHP is usually installed as an Apache module, but it is also possible to build a standalone program called php that can be used as a command-line interface (CLI).
Differences Between CLI and CGI Binaries
Beginning in version 4.2, PHP started to differentiate between binary programs intended for CGI and those for CLI use. Both executables provide the same language interpreter, but the CLI version includes the following changes to make it more suitable for command-line use:
To find out whether a php binary is a CGI or CLI version, you can run it with the v switch to see its version information. For instance, the following output is from the CLI version PHP 5.0.3:
PHP 5.0.3 (cli) (built: Dec 15 2004 08:07:57) Copyright (c) 1997-2004 The PHP Group Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies
The value in parentheses after the version number indicates the Server Application Programming Interface (SAPI) that is in use. You can also find this value dynamically in a script by looking at the return value from the function php_sapi_name .
PHP Shell Scripts on Linux/Unix
On a Linux/Unix platform, a
is simply a text file that contains a series of instructions that are to be
Because the command language available in most command
All shell scripts must begin with the
However, for a PHP script, the first line would be
The file permissions on a shell script must allow the file to be executed. To set execute permission for the owner of the file, you use the following command:
$ chmod u+x myscript.php
If your script is to be run by any system user, the command to set global execute permission is as
$ chmod a+x myscript.php
If the execute bit is not set, you can still run a file that contains a series of PHP commands through the PHP interpreter by invoking php with a filename argument. The following two commands are identical to one another (the f switch can be used for clarity but is not required):
$ php myscript.php $ php f myscript.php
PHP Command Scripts on Windows
Windows does not allow an alternate command interpreter to be used in a batch script, so to execute a PHP script under Windows, you have to pass a filename argument to php.exe . The f switch is optional, so the following two commands are identical to one another:
> php.exe myscript.php > php.exe f myscript.php
Embedding PHP Code
Just as when it is used in the web environment, PHP code in a command script needs to be embedded. Any text that does not appear inside <?php tags is sent straight to the output.
Because you usually want to create a script that is entirely made up of PHP code, you must remember to begin every PHP shell script with a <?php tag. However, the embedded nature of PHP means you could create a PHP script that generates only certain elements within a largely static text file.