我想执行一个shell命令,并将输出在数组中以:(1(输出的每行都是数组中的元素(2(线条被"标记",就像来自stdout还是从stderr
类似:
╔═════════╦══════════════════╗
║ Line No ║ Stdout or stderr ║
╠═════════╬══════════════════╣
║ Line1 ║ Stdout ║
╠═════════╬══════════════════╣
║ Line2 ║ Stdout ║
╠═════════╬══════════════════╣
║ Line3 ║ Stderr ║
╠═════════╬══════════════════╣
║ Line4 ║ Stdout ║
╚═════════╩══════════════════╝
这是一张桌子,但我的确是一个多维数组,其中$ thisArray [0],$ thisArray [1]是行。我假设执行的外壳命令将在切换到stderr或stdout之前始终生成一条新行。
这样,我可以看到哪个行属于哪个文件描述符,并能够在上下文中看到它。
有什么方法可以在PHP中使用Shell Exec命令或其他方式执行此操作?
如果PHP不可能,我不介意其他技术。
如果将线路断裂的字符串输入输入并通过此操作:
$arr = explode(PHP_EOL, $output);
然后,$ arr将带有您的数组,其中一个项目每$输出行。