Wie behalte ich die Leerraumformatierung mit PHP/HTML bei?
Frage
Ich analysiere Text aus einer Datei und speichere ihn in einer Zeichenfolge.Das Problem besteht darin, dass ein Teil des Textes in den Originaldateien enthalten ist ASCII art
und so weiter, was ich gerne bewahren möchte.Wenn ich die Zeichenfolge auf dem ausdrucke HTML page
, auch wenn es die gleiche Formatierung und alles hat, seit es drin ist HTML
, werden die Abstände und Zeilenumbrüche nicht beibehalten.Wie kann ich den Text am besten ausdrucken? HTML
genau so, wie es in der Originaltextdatei war?
Ich möchte ein Beispiel geben, aber leider konnte ich es in diesem Markdown-Editor nicht korrekt anzeigen :P
Grundsätzlich würde ich mich über Anregungen zur Darstellung freuen ASCII art in HTML
.
Lösung
Verwenden Sie das Tag <pre> (vorformatiert), das eine monoproportionale Schriftart (für Ihre Grafik) verwendet und den gesamten Leerraum beibehält
<pre>
text goes here and here
and here and here Some out here
▄ ▄█▄ █▄ ▄
▄█▀█▓ ▄▓▀▀█▀ ▀▀▀█▓▀▀ ▀▀ ▄█▀█▓▀▀▀▀▀▓▄▀██▀▀
██ ██ ▀██▄▄ ▄█ ▀ ░▒ ░▒ ██ ██ ▄█▄ █▀ ██
█▓▄▀██ ▄ ▀█▌▓█ ▒▓ ▒▓ █▓▄▀██ ▓█ ▀▄ █▓
█▒ █▓ ██▄▓▀ ▀█▄▄█▄▓█ ▓█ █▒ █▓ ▒█ ▓█▄ ▒
▀▒ ▀ ▀ █▀ ▀▒ ▀ █▀ ░
</pre>
Möglicherweise müssen Sie alle < in < umwandeln'S
Andere Tipps
Die <pre>
Und </pre>
ist im Textbereich usw. möglicherweise nicht ideal.
Wenn Sie eine neue Linie beibehalten möchten - \n
Und \n\r
verwenden nl2br wie von UnkwnTech und Brad Mace erwähnt.
Wenn Sie Räume erhalten möchten, verwenden Sie str_replace:
str_replace(' ', ' ', $stringVariable);
Wenn beide dies verwenden:
$result = str_replace(' ', ' ', $stringVariable);
$result = nl2br($result);
Beim Ausdrucken der Datennutzung nl2br()
umwandeln \n
Und \r\n
hinein <br>
Für alle, die nach einer Beibehaltung des aus der Datenbank geholten Textes suchen, hat dies bei mir funktioniert, indem ich CSS wie folgt eingestellt habe:
pre {
white-space: pre-line;
text-align : left;
}
im HTML:
<pre >
<?php echo htmlentities($yourText ) ; ?>
</pre>