如何在浏览器中像在终端中一样显示系统命令的输出
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_r
或 var_dump
将导致按 PHP 格式化。上面的示例是您可以实现的最原始的格式设置,前提是您保持结果不变。
使用 CSS,您可以为 <pre>
设置样式。但请确保使用 MONOSPACE 字体,以便保留 shell 格式。
我使用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_r
或 var_dump
将导致按 PHP 格式化。上面的示例是您可以实现的最原始的格式设置,前提是您保持结果不变。
使用 CSS,您可以为 <pre>
设置样式。但请确保使用 MONOSPACE 字体,以便保留 shell 格式。