Search code examples
phpblast

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

Solution

  • 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.