関数・クラス解説

popen

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

プロセスへのファイルポインタをオープンする

公式リファレンス

書式

popen ( string $command , string $mode ) : resource

説明

command で指定したコマンドのフォークによってできたプロセスへのパイプをオープンします。

パラメータ

command
コマンド。
mode
モード。読み取りを行う場合は 'r' を。 書き込みを行う場合は 'w' を指定します。 Windows では、popen() はデフォルトでテキストモードになります。 つまり、パイプから \n 文字を読み込んだり、書き込んだりすると、 \r\n に変換されるということです。 この振る舞いを望まない場合は、 mode にバイナリモードを指定し、強制することが出来ます。 読み取りのバイナリモードは 'rb' を。 書き込みのバイナリモードは'wb' をそれぞれ指定します。

返値

fopen() により返されたファイルポインタと同様のものを返しますが、 それは(読み書きのいずれか一方でのみ使われる)片方向ストリームであり、 pclose() によりクローズされなければならないところが異なります。 このポインタは、fgets()、fgetss() および fwrite() のいずれかで使うことができます。 モードが 'r' のときは、返されるファイルポインタは そのコマンドの STDOUT と等しくなります。また、モードが 'w' のときは、返されるファイルポインタは そのコマンドの STDIN と等しくなります。 エラーが発生した場合は FALSE を返します。

注意

注意: 双方向(two-way)のサポートを求めているのなら、 proc_open() を使用してください。

サンプル

例1 popen() の例

$handle = popen("/bin/ls", "r");

実行すべきコマンドが見つからない場合には、正常なリソースが返されます。 おかしなことと思われるかもしれませんが、これには意味があります。 これによってシェルから返されたエラーメッセージにアクセスすることができるのです。

例2 popen() の例

error_reporting(E_ALL); /* リダイレクトにより、標準エラー出力を取得します */ $handle = popen('/path/to/executable 2>&1', 'r'); echo "'$handle'; " . gettype($handle) . "\n"; $read = fread($handle, 2096); echo $read; pclose($handle);

参考

  • pclose() - プロセスのファイルポインタをクローズする
  • fopen() - ファイルまたは URL をオープンする
  • proc_open() - コマンドを実行し、入出力用にファイルポインタを開く
  • ワード検索


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

    関数名アルファベット別

    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用の拡張モジュール