最終更新(2010/11/3)
▼ 実行例1 > /path/to/php -q /path/to/command.php PHPのインタプリタに対して、"-q"オプション付きでPHPコードを記述したファイル(以下スクリプト)を渡す。 "-q"オプションを付けることでHTTPヘッダを自動出力させないようにしている。 ▼ 実行例2 #!/path/to/php -q スクリプトの1行目に上記のようにPHPインタプリタとオプションを書いて、実行権限を与える。 あとはそのスクリプトを実行するだけ > ./command.php 一方、ファイルではなく直接PHPコードをコマンドラインに記述して実行させる方法もある。 これは"-r"オプションを使うことでできる。 > /path/to/php -r "echo time();" 1288787758 > ちょっとした確認には便利 > /path/to/php -r "echo md5('foo'); acbd18db4cc2f85cedef654fccc4a4d8 > PHPコードは末尾";"セミコロンで文が終わるのでダブルクォートの閉じる方が無くても問題ない。
PHPのインタプリタに対して、"-q"オプション付きでPHPコードを記述したファイル(以下スクリプト)を渡す。
"-q"オプションを付けることでHTTPヘッダを自動出力させないようにしている。
スクリプトの1行目に上記のようにPHPインタプリタとオプションを書いて、実行権限を与える。
あとはそのスクリプトを実行するだけ
一方、ファイルではなく直接PHPコードをコマンドラインに記述して実行させる方法もある。 これは"-r"オプションを使うことでできる。
ちょっとした確認には便利
PHPコードは末尾";"セミコロンで文が終わるのでダブルクォートの閉じる方が無くても問題ない。
コマンドライン実行時に渡した引数は、$argv配列に格納されている。 コマンドライン引数を表示させるスクリプトを書いて実行させてみる。 [command.php] ・実行結果 > /path/to/php -q ./command.php one two tree end ./command.php one two tree end > 最初にスクリプト名がきて、実行時に渡した引数がつづいているのが確認できる。
コマンドライン実行時に渡した引数は、$argv配列に格納されている。
コマンドライン引数を表示させるスクリプトを書いて実行させてみる。
最初にスクリプト名がきて、実行時に渡した引数がつづいているのが確認できる。
実行中にキーボードからの入力を待って受け取るようなコマンド類など、標準入力の処理はコマンドライン実行のスクリプトには不可欠です。 [command.php] ・実行結果 > /path/to/php -q ./command.php YAMA: kawa ... YAMA: Kawa ... YAMA: KAWA OK! > 標準入力はSTDINという定数を使うことで読み込むことができます。 これは実行時に自動的にオープンされる特別なストリームで、コマンドライン実行時固有の定数です。 STDIN以外に、STDOUT, STDERRがあります。 その他、fopen()関数を使って独自に標準入力を読み込みモードでオープンする方法もあるが、これは独自に作ったストリームなので最後に閉じないといけない。 ・fopen()で作成した標準入力ストリームを扱う 標準入力処理はキーボード入力以外にも、別のコマンドの出力をパイプでつないで標準入力として流し込むとか、ウェブプログラムではPOST送信処理(PHPでは自動的にやってくれる)などがある。 ・別コマンドからのパイプイメージ > another-command | command.php
実行中にキーボードからの入力を待って受け取るようなコマンド類など、標準入力の処理はコマンドライン実行のスクリプトには不可欠です。
標準入力はSTDINという定数を使うことで読み込むことができます。
これは実行時に自動的にオープンされる特別なストリームで、コマンドライン実行時固有の定数です。
STDIN以外に、STDOUT, STDERRがあります。
その他、fopen()関数を使って独自に標準入力を読み込みモードでオープンする方法もあるが、これは独自に作ったストリームなので最後に閉じないといけない。
標準入力処理はキーボード入力以外にも、別のコマンドの出力をパイプでつないで標準入力として流し込むとか、ウェブプログラムではPOST送信処理(PHPでは自動的にやってくれる)などがある。