popen

(PHP 3, PHP 4 , PHP 5)

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

説明

int popen ( string command, string mode)

commandで与えられたコマンドを fork()して実行し、そのプロセスへのパイプをオープンします。

fopen()により返されたファイルポインタ と同様のものを返しますが、それは(読み書きのいずれか一方で のみ使われる)片方向ストリームであり、pclose() によりクローズされなければならないところが異なります。この ポインタは、fgets(), fgetss() およびfputs()のいずれかで使うことができます。

エラーが起こった場合FALSEを返します。

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

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

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

<?php
error_reporting
(E_ALL);

/* Add redirection so we can get stderr. */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo
"'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo
$read;
pclose($handle);
?>

pclose(), fopen(), proc_open()も参照してください。