PHPはWebだけでなく、コマンドラインから実行させる使い方もあります。
いわゆるCLI(Command Line Interface)というやつです。

このCLIは、PHPが使用しているインターフェイス(サーバAPI、SAPI)の型を表すものです。
CLIの他には、apacheモジュールとして実行されている場合は「apache」や「apache2handler」など、
CGIとして実行されている場合は「cgi」「cgi-fcgi」などのSAPIになるようです。
どのSAPIか知るには、定数PHP_SAPIや関数php_sapi_name()で参照できます。

CLIではコマンドラインからPHPインタプリタへあれやこれやオプションを渡していろんな情報を得ることができます。

代表的なのがPHPバージョン表示を行う「-v」オプションです。
versionの「-v」)

PHPインタプリタへのパスが通っていれば、DOS窓から以下のように打てば表示できます。
C:\Users\Administrator> php -v
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\Administrator>


手元のxampp環境ではパスが通ってないのでフルパス指定する必要があります。

C:\Users\Administrator> /xampp/php/php -v
PHP 5.3.1 (cli) (built: Nov 20 2009 17:26:32)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
    with Xdebug v2.0.6-dev, Copyright (c) 2002-2009, by Derick Rethans

C:\Users\Administrator>


うまくいきました。
さて他にもいろいろあるオプション、一覧で確認したい場合は「-h」オプションが使えます。
helpの「-h」)
C:\Users\Administrator> /xampp/php/php -h


大量のオプションを一覧で見ても困るね。
実際に使うのはそれほど多くないし使えそうなのを抜粋してみます。


●PHPファイルを実行させる「-f」(fileの「-f」)
C:\Users\Administrator> /xampp/php/php -f file


「-f」オプションは省略できるので以下のようにしても同じです。
C:\Users\Administrator> /xampp/php/php file



●PHP情報を表示させる「-i」(informationの「-i」)
C:\Users\Administrator> /xampp/php/php -i


これはPHPの関数phpinfo()を使った時と同様のHTML形式で大量に表示されます。
動体視力が衰えてる場合はリダイレクトで一旦保存するか、パイプラインでmoreのようなページャにつなげるかして見ないと追いきれません。

C:\Users\Administrator> /xampp/php/php -i >/xampp/htdocs/phpinfo.html


特に「Warning」や「Error」表示になっている箇所があれば、対処しましょう。

grepコマンドが使えるLinux環境なら以下のようにすれば抽出できます。

C:\Users\Administrator> /xampp/php/php -i | grep Warn



●PHPファイルの構文チェック「-l」
C:\Users\Administrator> /xampp/php/php -l /xampp/htdocs/index.php
No syntax errors detected in /xampp/htdocs/index.php

C:\Users\Administrator>


「-l」は、lint(構文チェックの意味)のlになります。


●有効なモジュール表示「-m」(moduleの「-m」)
組み込まれていて、なおかつ有効になっているモジュールが表示されます。
C:\Users\Administrator> /xampp/php/php -m
[PHP Modules]
bcmath
bz2
calendar
com_dotnet
Core
ctype
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
json
libxml
mbstring
mcrypt
mhash
ming
mysql
mysqli
mysqlnd
odbc
openssl
pcre
pdf
PDO
pdo_mysql
PDO_ODBC
pdo_sqlite
Phar
Reflection
session
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]
Xdebug


C:\Users\Administrator>



●PHPコードを渡して実行「-r」(runの「-r」)
環境ごとにシェルの展開方式が違うので多少やり方は違います。

php -r "PHPコード;" for Windows
php -r 'PHPコード;' for Unix

C:\Users\Administrator> /xampp/php/php -r "echo \"Hello world.\n\";"
Hello world.

C:\Users\Administrator>


Windowsで二重引用符でくくったものをオプションに渡すと表示できました。

C:\Users\Administrator> /xampp/php/php -r 'echo "Hello world.\n";'

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE in Command line
code on line 1

C:\Users\Administrator>


Windowsで一重引用符だとエラーになります。


●iniファイルはいずこへ?「--ini」
実行で実際に使用している設定ファイルがどこの何がしかを知っておくことは重要なことです。
これはPHP5.2.3以降で使える方法になります。

C:\Users\Administrator> /xampp/php/php --ini
Configuration File (php.ini) Path:
Loaded Configuration File:         C:\xampp\php\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

C:\Users\Administrator>