在回显linux命令行输出时保留空格

时间:2014-07-26 16:21:33

标签: php html

当我们在linux上输入nslookup命令时:

[root@vmcentos ~]# nslookup 8.8.8.8

答案的格式如下:

Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
8.8.8.8.in-addr.arpa    name = google-public-dns-a.google.com.

Authoritative answers can be found from:
8.in-addr.arpa  nameserver = ns1.level3.net.
8.in-addr.arpa  nameserver = ns2.level3.net.
ns1.level3.net  internet address = 209.244.0.1
ns2.level3.net  internet address = 209.244.0.2

但是在apache中尝试这个时:

<?php
$var1 = `nslookup 8.8.8.8`;
echo $var1;
?>

甚至:

 <?php
    $var1 = `nslookup 8.8.8.8`;
    print$var1;
 ?>

在浏览器页面中显示如下:

  

服务器:192.168.1.1地址:192.168.1.1#53非权威答案:8.8.8.8.in-addr.arpa name = google-public-dns-a.google.com。权威答案可以从以下网址找到:8.in-addr.arpa nameserver = ns2.level3.net。 8.in-addr.arpa nameserver = ns1.level3.net。 ns1.level3.net internet address = 209.244.0.1 ns2.level3.net internet address = 209.244.0.2

那么如何在浏览器中打印命令的输出,就像Linux控制台中的输出一样? (我想要与空行和换行符(\ n)相同的格式)

1 个答案:

答案 0 :(得分:2)

我想最直接的方法是用<pre>标签包围输出,这样浏览器就会像在页面的源代码中那样呈现文本:

printf('<pre>%s</pre>', $var1);

另一个解决方案可能是使用nl2br(),这至少可以保留换行符,但浏览器仍会以不同方式呈现多个空格和制表符。