当我们在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)相同的格式)
答案 0 :(得分:2)
我想最直接的方法是用<pre>
标签包围输出,这样浏览器就会像在页面的源代码中那样呈现文本:
printf('<pre>%s</pre>', $var1);
另一个解决方案可能是使用nl2br()
,这至少可以保留换行符,但浏览器仍会以不同方式呈现多个空格和制表符。