コンテンツにスキップ

Top

PHP を コマンドラインで実行する

Linuxの場合、php -r でできる。
(Windowsでもできるんだけどなんか挙動がおかしい)

Linuxでコマンドラインで実行

$ php -r 'echo "hoge\n";'
hoge

こんな感じ。
気を付けないといけないのが ' と "。
例えば上記は、

$ php -r "echo 'hoge\n';"
hoge\n$

みたいな感じでちゃんと動かない。もっと言うと変数とかを使う以下のようなコードの場合、

php -r '
> $time = new DateTime();
> echo $time->format("Y-m-d H:i:s"), PHP_EOL;
> '
2022-10-12 16:05:31

' と " を入れ替えると、

$ php -r "
> $time = new DateTime();
> echo $time->format('Y-m-d H:i:s'), PHP_EOL;
> "
PHP Parse error:  syntax error, unexpected token "=", expecting end of file in Command line code on line 2

とエラーになってしまうのだ!

あくまで ' でくくる。が大事。

Windowsでコマンドラインで実行

基本Linuxと同じはずなんだけどちょいちょい動きが変なのであきらめる。

ちょっとWindowsのPowerShellとかで確認したいのなら、

<?php
try {
    $p = new PharData('./image.tar');
    $p->extractTo('./image');
} catch (Exception $e) {
    echo $e->getMessage();
}
?>

みたいな感じでテキストファイルを作って、

> php hoge.php

としたほうがなんかごちゃごちゃ頑張らんでいいので楽。

以上!