PHPでコマンドラインを実行する2つの方法(用途違うよ!

PHPでコマンドラインを実行する2つの方法(用途違うよ!

PHPでバッジ処理を書くことが最近多いです。

よくコマンドラインを実行する処理を書く時が多いのですが、
案外みなさんどうやって実行する処理を書けばいいかわからない人も多いのでは?

今回は、コマンドラインの実行するPHPの書き方を2通りご紹介します。

execメソッッドを使う

execを使用してコマンドラインを実行する方法があります。
使い方としては、下記の例を参照。

ex) $cmd = "rm test.txt";
exec($cmd);

 

バッククォーテーションで囲む

$cmd = `cmd`;

実行したコマンドをバッククォーテーションで囲むだけで実行してくれます。

execとバッククォーテーションの違いは?

両者ともPHPでコマンドラインを実行する方法なのですが、両者の使い方には決定的な違いがあります。

それはバックエンドで処理をするかどうか。

execメソッドの方は、その実行したいコマンドの処理が終了するまで、次の処理に移動しません

バッククォーテーションは、バックエンドで処理を実行するため、その実行したいコマンドの処理を待たずに次の処理に進みます

業務では、その時々で使い分けが必要になりますので、ぜひ参考にして見てくださいね^^