2016-04-04 8 views
0

Ich habe ein bisschen verloren, weil ich nicht wirklich eine PHP-Person bin.Die Übergabe von TextArea an PHP kommt als eine Zeile heraus.

grundsätzlich in meiner Form habe ich eine TextArea in meinem HTML, wo ein Benutzer in einer TraceRoute von ihrer Befehlszeile einfügen wird. Dies wird dann an mein PHP-Formular übergeben (wo es in xml umgewandelt wird ... das ist unwichtig).

Der Tracert kommt jedoch als einzelne ausgekleidete Zeichenfolge, im Gegensatz zu einzelnen Zeilen. Dies macht es sehr schwierig zu lesen.

Also brauche ich einen Weg für die Traceroute genau so angezeigt werden, wie es in der TextArea-Box ist.

Hier ist mein HTML-Code (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> 

Und hier ist meine PHP-Datei, die die Daten verarbeitet (convert2xml.php).

<html> 
<body> 
&#60;Information&#62; 
Traceroute output: 
<br> 
<?php echo $_POST["Traceroute"]; ?> &#60;/Information&#62; 
<br> 

Wie Sie die < sehen und> wurden mit dem HTML-Codes ersetzt, das ist, was es in ein schönes XML Layout dreht (in diesem Fall ist es in einem XML-Tag genannt Informationen).

Ein Eingang Beispiel wäre (ich habe einen Teil des IP-Adressen und Domains geschwärzt):

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. 

Aber was ich bin immer ist eine kontinuierliche string:

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

ich habe gesucht in nl2br, aber das hilft mir nicht, da ich das "\ n" manuell am Ende der traceroute-Linie eingeben müsste, um es zur Arbeit zu bringen.

Das einzige, was ich mir vorstellen kann, wäre eine Schleife, wo es die Zeichenfolge für die ASCII-Zeilencode überprüft, und fügt dann ein "\ n" oder < br>. Oder wäre das Hinzufügen etwas Zeile „“ um jede Zeile in Textbereich, und dann html immer < br hinzuzufügen> bei jedem „?

Aber es muss eine einfachere Methode, es zu tun sein? Irgendwelche Ideen?

* *********** AKTUALISIERT *********

richtige Antwort zur Verfügung gestellt von @FastTurtle

scheint, dass ich über verkompliziert es war.

n2lbr perfekt funktioniert für mein Ziel.Hier

ist die aktualisierte PHP:

&#60;Information&#62; 
    <?php echo nl2br($_POST["Traceroute"]); ?> &#60;/Information&#62; 

Und hier ist der Ausgang jetzt:

</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

Hinweis: Whitespace *** in HTML *** bedeutet nichts standardmäßig ... – deceze

Antwort

2

Verwenden

echo nl2br($_POST["Traceroute"]); 

mehr auf nl2br Funktion http://php.net/manual/en/function.nl2br.php

Hoffe es hilft :)

+0

Sie müssen noch ein wenig mehr tun, um die * Einrückung * richtig zu bekommen. – deceze

+0

Nun .... jetzt fühle ich mich sehr albern! wie die nl2br funktionierte für meinen Zweck. Ich bin mir nicht sicher, warum ich es vorher nicht funktionierte. Denke, ich habe es gerade zu lange betrachtet und es in meinem Kopf verkompliziert :) Vielen Dank @FastTurtle. Ich werde es als beantwortet markieren. –