PHPでコマンドラインツールを作る

Webページ作る以外に使えないと勝手に思い込んでいたPHPですが、普通にコマンドラインツールを作ることもできました。(今更)

JSONをパースするだけのPHPスクリプト

$ vim jsondecode.php

例として、jsondecode.phpとかいうスクリプトを作ってみます。

<?php
print_r(json_decode($argv[1], true));

中身は、phpのjson_decode関数を呼んで、それを表示するだけです。

PHPスクリプトの実行方法

$ php jsondecode.php '{"username":"katty0324"}'
Array
(
    [username] => katty0324
)

phpを呼んでその引数にPHPスクリプトを渡せばコマンドラインでも実行してくれます。

シバンを書くことで実行ファイルにする

$ vim jsondecode

phpの拡張子が付いているツールはかっこ悪いので、今度はjsondecodeという名前のファイルを作ります。

#!/usr/bin/php
<?php
print_r(json_decode($argv[1], true));

中身は先程と同じですが、1行目にシバン(#!/usr/bin/php)を追加します。これによって、このファイルがphpで実行されることを表します。

$ chmod u+x jsondecode

更に、今度はPHPスクリプトではなく実行ファイルにしたいので、chmodコマンドで実行権限を与えます。

実行方法

$ ./jsondecode '{"username":"katty0324"}'
Array
(
    [username] => katty0324
)

今度は、シェルから直接phpを呼ぶことなく実行できます。

こうするとパスを通すことによって他のLinuxコマンドと同様にも使えます。PHPなら書き慣れているという人はこれでサーバの管理ツールなんかも楽に書けそうです。

About katty0324

Leave a Reply

Scroll To Top