php

PHPで外部プログラムを起動する

外部プログラムを起動したい場合、
exec()関数を使うことができます。

サンプルコードの実行結果はこちら

上記のサンプルコードで、Windowsのメモ帳を起動できます。
出力の最終行を戻り値として戻す、exec()関数以外にも、
戻り値がないsystem()関数を使うことができます。

system("コマンド名");

PHPには外部プログラムを起動する演算子「」(バッククォート)も
あります。この場合は2つの「
」でコマンドを囲みます。

コマンド名

外部プログラムを起動するには、セキュリティに注意が必要です。
外部プログラムを起動することで、WindowsなどのOSに対する
不正操作が実行されることもあります。そのことを
OSコマンドインジェクションといいます。
この状況を避けるには、外部プログラムの使用は必要な状況に
限定して、起動させたいプログラムが不正でないかを
判定しなければいけません。

ユーザーに起動プログラムを入力させるときは、不正な外部プログラムをの
起動やOSに対する操作が行われないように、入力文字列んに
escapeshelllcmd()関数を使うことができます。
この関数を使うと、「#&;
|」といった不正なコマンドを起動する場合に
使われる特殊な文字がエスケープ処理されます。

関数名 戻り値 内容
exec(string $str) string 外部プログラムを起動

-php
-