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窓から以下のように打てば表示できます。
手元のxampp環境ではパスが通ってないのでフルパス指定する必要があります。
うまくいきました。
さて他にもいろいろあるオプション、一覧で確認したい場合は「-h」オプションが使えます。
(helpの「-h」)
大量のオプションを一覧で見ても困るね。
実際に使うのはそれほど多くないし使えそうなのを抜粋してみます。
●PHPファイルを実行させる「-f」(fileの「-f」)
「-f」オプションは省略できるので以下のようにしても同じです。
●PHP情報を表示させる「-i」(informationの「-i」)
これはPHPの関数phpinfo()を使った時と同様のHTML形式で大量に表示されます。
動体視力が衰えてる場合はリダイレクトで一旦保存するか、パイプラインでmoreのようなページャにつなげるかして見ないと追いきれません。
特に「Warning」や「Error」表示になっている箇所があれば、対処しましょう。
grepコマンドが使えるLinux環境なら以下のようにすれば抽出できます。
●PHPファイルの構文チェック「-l」
「-l」は、lint(構文チェックの意味)のlになります。
●有効なモジュール表示「-m」(moduleの「-m」)
組み込まれていて、なおかつ有効になっているモジュールが表示されます。
●PHPコードを渡して実行「-r」(runの「-r」)
環境ごとにシェルの展開方式が違うので多少やり方は違います。
php -r "PHPコード;" for Windows
php -r 'PHPコード;' for Unix
Windowsで二重引用符でくくったものをオプションに渡すと表示できました。
Windowsで一重引用符だとエラーになります。
●iniファイルはいずこへ?「--ini」
実行で実際に使用している設定ファイルがどこの何がしかを知っておくことは重要なことです。
これはPHP5.2.3以降で使える方法になります。
いわゆる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>