システムコマンドの出力(生)を変数に返し、リターンコードを与えるPHPで何かを探しています。
exec
これを行いますが、出力は配列であるため、返されるデータは適切ではありません (\n
新しいインデックスに含まれているため)。system
変数ではなく出力ストリームにデータを出力します。shell_exec
戻り値は返されませんが、生データが返されます。
システムコマンドの出力(生)を変数に返し、リターンコードを与えるPHPで何かを探しています。
exec
これを行いますが、出力は配列であるため、返されるデータは適切ではありません (\n
新しいインデックスに含まれているため)。system
変数ではなく出力ストリームにデータを出力します。shell_exec
戻り値は返されませんが、生データが返されます。出力バッファリングを探しているようです:
ob_start();
system($command, $returnCode);
$output = ob_get_clean();
これにより、各出力行の最後にすべての空白文字が保持されるはずです(exec
あなたが書いたように、これらは破棄されるためimplode
、オプションではありません)。
または、プロセスを開いてパイプ (標準出力、STDOUT) を取得し、これらから出力を読み取ることができます。しかし、それはより複雑です (ただし、より多くのオプションが提供されます)。を参照してくださいproc_open
。