【 cli ディレクトリの php.exe 】

1. 概要
2. CLI と CGI との相違

Command Line Interface
  • 4.3以降でサポートされた Command Line Interfaceを意味する CLIという
    名前の新しいSAPI型です

  • php -v をコマンドラインより実行する事によって、CGI か CLI かを知る事
    ができます


  • CLI
    PHP 4.3.4 (cli) (built: Nov  2 2003 23:47:34)
    Copyright (c) 1997-2003 The PHP Group
    Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
    


  • CGI
    PHP 4.3.4 (cgi-fcgi) (built: Nov  2 2003 23:47:22)
    Copyright (c) 1997-2003 The PHP Group
    Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
    


    PHPによるシェルアプリケーション作成を想定
  • ヘッダが出力されない

  • 動作するディレクトリはスクリプトの場所に変更されない

  • エラーメッセージはプレーンテキストで表示される
    (HTMLでフォーマットされない

  • 最大実行時間の制限は無い

  • register_argc_argv ディレクティブの設定に関わらず、$argc変数と $argv変数
    が登録され、適切な値がセットされる

  • 標準入出力、エラー出力用の定数が定義されている


  • c:\temp\test.txt
    <?
    print "-->" . getcwd() . "\n";
    print "\$argc = $argc\n";
    print_r( $argv );
    fwrite(STDOUT, "stdout\n");
    fwrite(STDERR, "stderr\n");
    ?>
    


  • CLI
    C:\PHP\cli>php c:\temp\test.txt
    -->C:\PHP\cli
    $argc = 1
    Array
    (
        [0] => c:\temp\test.txt
    )
    stdout
    stderr
    


  • CGI
    C:\PHP>php c:\temp\test.txt
    Content-type: text/html
    X-Powered-By: PHP/4.3.4
     
    -->c:\temp
    $argc = 1
    Array
    (
        [0] => c:\temp\test.txt
    )
    <br />
    <b>Warning</b>:  fwrite(): supplied argument is not a valid stream resource in <
    b>c:\temp\test.txt</b> on line <b>5</b><br />
    <br />
    <b>Warning</b>:  fwrite(): supplied argument is not a valid stream resource in <
    b>c:\temp\test.txt</b> on line <b>6</b><br />
    


    注意
  • 4.3.4 Windows でテストしていますが、php -r は正常には動作しませんでした