Seowoo Kim Seowoo Kim - 7 months ago 22
PHP Question

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

I used php shell_exec to run BLAST command (biologcal sequence alignment tool) and outputs the result in browser. However, I am not able to format the result same like it displayed when I run the same command in terminal . I tried using methods like passthru() and exec(). Both of it doesnt work! In my case, output formatting is important as a small space can make the error (a portion is give below). Can anyone tell me how to display the result in browser as exactly which in command terminal.

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

Part of my output looks like,

Query 707 TCAGACTTGAA 766
Sbjct 3632 TCAGACTTGAA 3691


In order to keep formatting identical, including spaces etc., you should use the <pre> html element. An example:

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

Just echo the raw result. Using print_r or var_dump would lead to formatting by PHP. The above example is the most raw formatting you can achieve, given you leave result untouched.

With CSS you can then style the <pre>. But make sure to use a MONOSPACE font so that shell formatting is kept.