Звучит так, будто вы ищете буферизацию вывода:
ob_start();
system($command, $returnCode);
$output = ob_get_clean();
Это должно сохранить все пробельные символы в конце каждой строки вывода (exec
, как вы написали, уничтожает их, поэтому implode
не будет вариантом).
В качестве альтернативы, вы можете открыть процесс и получить каналы (стандартный вывод, STDOUT) и прочитать выходные данные из них. Но это сложнее (но дает вам больше возможностей). См. proc_open
.