如何在浏览器中像在终端中一样显示系统命令的输出

How to display the output of a system command in browser exactly as in terminal

我使用php shell_exec到运行 BLAST命令(生物序列比对工具)并在浏览器中输出结果。但是,当我 运行 在终端 中使用相同的命令时,我无法将结果格式化为 显示的结果。我尝试使用像 passthru() 和 exec() 这样的方法。两个都不行!在我的例子中,输出格式很重要,因为一个小的 space 可能会出错(下面给出了一部分)。谁能告诉我如何在浏览器中显示结果,就像在命令终端中一样

$cmd = "$blast -query /var/www/html/kim/blast/testing.txt -db /var/www/html/kim/blast/$db";
$result =shell_exec($cmd);
print_r ($result);

我的部分输出看起来像,

Query  707   TCAGACTTGAA  766
             |||||||||||
Sbjct  3632  TCAGACTTGAA  3691

为了保持格式相同,包括空格等,您应该使用 <pre> html 元素。一个例子:

echo '<pre>';
echo $result;
echo '</pre>';

只回显原始结果。使用 print_rvar_dump 将导致按 PHP 格式化。上面的示例是您可以实现的最原始的格式设置,前提是您保持结果不变。

使用 CSS,您可以为 <pre> 设置样式。但请确保使用 MONOSPACE 字体,以便保留 shell 格式。