関数・クラス解説

exec

version:PHP 4, PHP 5, PHP 7 (公式)

外部プログラムを実行する

公式リファレンス

書式

exec ( string $command [, array &$output [, int &$return_var ]] ) : string

説明

exec() は指定されたコマンド command を実行します。

パラメータ

command
実行するコマンド
output
引数 output が存在する場合、指定した配列は、 コマンドからの出力の各行で埋められます。 \n のような後に続く空白は、この配列には含まれません。 配列に既に何らかの要素が 含まれる場合は、exec() は配列の最後に追加される ことに注意してください。関数が要素を追加することを望まないのなら、 それが exec() に渡される前に、配列の unset() を呼び出してください。
return_var
引数return_varが、引数 output と共に存在する場合、実行したコマンドの ステータスがこの変数に書かれます。

返値

コマンド結果の最後の行を返します。コマンドを実行し、 一切干渉を受けずに直接コマンドから全てのデータを受けとる必要が あるならば、PassThru() 関数を使ってください。 実行されたコマンドの出力を取得するには、必ず output パラメータを設定・使用してください。

注意

警告ユーザーが入力したデータをこの関数に渡すことを許可する場合、ユーザーが任意のコマンドを実行できるようシステムを欺くことができないように escapeshellarg() またはescapeshellcmd() を適用する必要があります。

注意: プログラムがこの関数で始まる場合、バックグラウンドで処理を続けさせるには、プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。
注意: Windowsでは、exec() 関数はコマンドを起動するために最初に cmd.exe を起動します。cmd.exe を起動せずに外部プログラムを起動したい場合は、proc_open() 関数を bypass_shell オプションを指定して使うようにしてください。
警告ユーザーが入力したデータをこの関数に渡すことを許可する場合、ユーザーが任意のコマンドを実行できるようシステムを欺くことができないように escapeshellarg() またはescapeshellcmd() を適用する必要があります。

サンプル

例1 exec() の例

// ("whoami" コマンドをパスに有するシステム上で) // 実行中のphp/httpdプロセスを所有するユーザーの名前を出力 echo exec('whoami');

参考

  • system() - 外部プログラムを実行し、出力を表示する
  • passthru() - 外部プログラムを実行し、未整形の出力を表示する
  • escapeshellcmd() - シェルのメタ文字をエスケープする
  • pcntl_exec() - 現在のプロセス空間で指定したプログラムを実行する
  • バックティック演算子
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール