我对如何使其工作感到有点失落,因为不是真正的PHP人。
基本上以我的形式,我的HTML中有一个TextArea,用户将从命令行粘贴TraceRoute。然后将它传递给我的PHP表单(它变成了xml ......这是不重要的)。
然而,tracert作为单个衬里字符串出现,而不是单独的行。这使得阅读非常困难。
所以我需要一种方法让traceroute像在TextArea框中一样显示。
这是我的HTML代码(submit.html)
<html>
<body>
<form action="convert2xml.php" method="post">
Traceroute:
<textarea rows="5" cols="50" name="Traceroute"></textarea>
<br>
<input type="Submit">
</form>
</body>
</html>
这是我处理数据的PHP文件(convert2xml.php)。
<html>
<body>
<Information>
Traceroute output:
<br>
<?php echo $_POST["Traceroute"]; ?> </Information>
<br>
你可以看到&lt;和&gt;已被html代码替换,这就是将它变成一个漂亮的XML布局(在这种情况下,它位于一个名为Information的xml标签中)。
一个示例输入是(我已经编辑了一些IP和域):
C:\Users\******>tracert 8.8.8.8
Tracing route to google-public-dns-a.google.com [8.8.8.8]
over a maximum of 30 hops:
1 1 ms 3 ms 1 ms 192.168.0.1
2 12 ms 12 ms 8 ms **.**.**.**
3 9 ms 12 ms 9 ms **.**.**.**
4 13 ms 13 ms 13 ms example-doman.name [**.**.**.**]
5 15 ms 15 ms 14 ms example-doman.name [**.**.**.**]
6 12 ms 14 ms 13 ms **.**.**.**
7 14 ms 13 ms 16 ms **.**.**.**
8 11 ms 19 ms 15 ms google-public-dns-a.google.com [8.8.8.8]
Trace complete.
但我得到的是一个连续的字符串:
<Information>C:\Users\******>tracert 8.8.8.8 Tracing route to google-public-dns-a.google.com [8.8.8.8] over a maximum of 30 hops: 1 1 ms 3 ms 1 ms 192.168.0.1 2 12 ms 12 ms 8 ms **.**.**.** 3 9 ms 12 ms 9 ms **.**.**.** 4 13 ms 13 ms 13 ms example-doman.name [**.**.**.**] 5 15 ms 15 ms 14 ms example-doman.name [**.**.**.**] 6 12 ms 14 ms 13 ms **.**.**.** 7 14 ms 13 ms 16 ms **.**.**.** 8 11 ms 19 ms 15 ms google-public-dns-a.google.com [8.8.8.8] Trace complete. </Information>
我已经查看了nl2br,但这对我没有帮助,因为我必须在traceroute行的末尾手动输入“\ n”才能使它工作。
我唯一能想到的是,它会检查字符串中的ascii新行代码,然后添加“\ n”或&lt; br&gt;。或者在文本区域的每一行周围添加“”,然后获取html以添加&lt; br&gt;在每个“?
但必须有一些更简单的方法吗?任何想法?
************修订*********
@FastTurtle提供的正确答案
似乎我让它复杂化了。n2lbr非常适合我的目的。
这是更新的PHP:
<Information>
<?php echo nl2br($_POST["Traceroute"]); ?> </Information>
现在是输出:
</Information>C:\Users\******>tracert 8.8.8.8
Tracing route to google-public-dns-a.google.com [8.8.8.8]
over a maximum of 30 hops:
1 1 ms 3 ms 1 ms 192.168.0.1
2 12 ms 12 ms 8 ms **.**.**.**
3 9 ms 12 ms 9 ms **.**.**.**
4 13 ms 13 ms 13 ms example-doman.name [**.**.**.**]
5 15 ms 15 ms 14 ms example-doman.name [**.**.**.**]
6 12 ms 14 ms 13 ms **.**.**.**
7 14 ms 13 ms 16 ms **.**.**.**
8 11 ms 19 ms 15 ms google-public-dns-a.google.com [8.8.8.8]
Trace complete. </Information>
答案 0 :(得分:2)
使用
echo nl2br($_POST["Traceroute"]);
更多关于nl2br函数http://php.net/manual/en/function.nl2br.php
希望有所帮助:)