システムコマンドの出力(生)を変数に返し、リターンコードを与える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。