UltraMega Blog

PHP in the Shell

PHP may be most commonly used within a web server to produce web pages, but it is a powerful scripting engine by itself. PHP is an amazingly useful multipurpose tool when used from the command line. This post will show you how to use the PHP Command Line Interface (CLI). Some of the information here is Linux specific, but there are equivalents for Windows.

Accessing the PHP CLI

Obviously the first thing you need to know is how to run PHP from the command line. There are a number of ways to do this, and one way that I prefer.

The method I find easiest is to write your script as a shell script. This basically means taking a regular PHP script and adding a line to the beginning declaring the php binary to interpret the script. Here's an example:

< ?php
echo 'Hello World';

Assuming the file name 'test.php' you would make it executable with chmod +x test.php and run it simply with ./test.php. Note that the file does not need to end with .php to function.

Other options for accessing the PHP CLI are to pass scripts or code to php as parameters, pass code to php through standard input, or enter code manually in interactive mode.

File as parameter:

$ php test.php

Code as parameter:

$ php -r "echo 'Hello World';"

Code through standard input (generate_php_code outputs code):

$ generate_php_code | php

Interactive mode:

$ php -a
Interactive shell
php > echo 'Hello World';
Hello World
php >

Using cURL Within PHP

PHP includes an easy to use interface for the cURL library. This means you can easily communicate with other servers using a variety of protocols. It is commonly used to access web service APIs such as Twitter. This tutorial will explain the basics and show some usage examples.

There are 4 main functions you need to know to use cURL: curl_init, curl_setopt, curl_exec, and curl_close. The process generally goes like this:

  1. start a cURL session and get a handle (curl_init)
  2. set the options for the session (curl_setopt)
  3. execute the session (curl_exec)
  4. close the session (curl_close).

The handle returned by curl_init is used as the first parameter in the other functions.

All the available options are listed on the curl_setopt manual page with detailed descriptions.

Tagged as: , Continue reading