我想执行一个shell命令,并将输出放在一个数组中,使得: (1)输出的每一行都是数组中的一个元素 (2)无论是来自stdout还是stderr,这些行都被“标记”
类似的东西:
╔═════════╦══════════════════╗
║ Line No ║ Stdout or stderr ║
╠═════════╬══════════════════╣
║ Line1 ║ Stdout ║
╠═════════╬══════════════════╣
║ Line2 ║ Stdout ║
╠═════════╬══════════════════╣
║ Line3 ║ Stderr ║
╠═════════╬══════════════════╣
║ Line4 ║ Stdout ║
╚═════════╩══════════════════╝
这是一个表,但是我真正的意思是一个多维数组,其中$ thisarray [0],$ thisarray [1]是行。 我假设执行的shell命令在切换到stderr或stdout之前总是会生成新行。
这样,我将能够看到哪一行属于哪个文件描述符,并能够在上下文中看到它。
在PHP中,是否可以使用shell exec命令或其他方式来做到这一点?
如果PHP无法做到这一点,那么我不介意其他技术。
答案 0 :(得分:0)
如果您输入带有换行符的字符串输入,并通过以下命令运行它:
{% if messages %}
{% for message in messages %}
<div class="alert temp-alert {% if message.tags %}alert-{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}danger{% else %}{{ message.tags }}{% endif %}{% endif %}" role="alert">{{ message }}</div>
{% endfor %}
{% endif %}
然后$ arr将使您的数组在$$输出行中包含一项。