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>
<Information>
Traceroute output:
<br>
<?php echo $_POST["Traceroute"]; ?> </Information>
<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:
<Information>
<?php echo nl2br($_POST["Traceroute"]); ?> </Information>
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>
Hinweis: Whitespace *** in HTML *** bedeutet nichts standardmäßig ... – deceze