I'm parsing text from a file and storing it in a string. The problem is that some of the text in the original files contains ASCII art
and whatnot that I would like to preserve. When I print out the string on the HTML page
, even if it does have the same formatting and everything since it is in HTML
, the spacing and line breaks are not preserved. What is the best way to print out the text in HTML
exactly as it was in the original text file?
I would like to give an example, but unfortunately, I was not able to get it to display correctly in this markdown editor :P
Basically, I would like suggestions on how to display ASCII art in HTML
.
Asked
Active
Viewed 5.1k times
33

Ijas Ameenudeen
- 9,069
- 3
- 41
- 54

Steven Oxley
- 6,563
- 6
- 43
- 55
5 Answers
60
use the <pre> tag (pre formatted), that will use a mono spaced font (for your art) and keep all the white space
<pre>
text goes here and here
and here and here Some out here
▄ ▄█▄ █▄ ▄
▄█▀█▓ ▄▓▀▀█▀ ▀▀▀█▓▀▀ ▀▀ ▄█▀█▓▀▀▀▀▀▓▄▀██▀▀
██ ██ ▀██▄▄ ▄█ ▀ ░▒ ░▒ ██ ██ ▄█▄ █▀ ██
█▓▄▀██ ▄ ▀█▌▓█ ▒▓ ▒▓ █▓▄▀██ ▓█ ▀▄ █▓
█▒ █▓ ██▄▓▀ ▀█▄▄█▄▓█ ▓█ █▒ █▓ ▒█ ▓█▄ ▒
▀▒ ▀ ▀ █▀ ▀▒ ▀ █▀ ░
</pre>
You might have to convert any <'s to < 's

Grant
- 11,799
- 13
- 42
- 47
17
the <pre>
and </pre>
might not be ideal in textarea etc..
When wanting to preserve new line - \n
and \n\r
use nl2br as mentioned by UnkwnTech and Brad Mace.
When wanting to preserve spaces use str_replace:
str_replace(' ', ' ', $stringVariable);
When both use this:
$result = str_replace(' ', ' ', $stringVariable);
$result = nl2br($result);

Igor L.
- 3,159
- 7
- 40
- 61
6
For all those searchng for preserving the text fetched from database , this worked for me , setting CSS as following ,
pre {
white-space: pre-line;
text-align : left;
}
in html :
<pre >
<?php echo htmlentities($yourText ) ; ?>
</pre>

Divyanshu Jimmy
- 2,542
- 5
- 32
- 48
-2
just echo the necessary special characters (\s, \n, or \r ) along with your string in your PHP code.
<?php
echo ("hello world \n")
?>

OsowoIAM
- 67
- 1
- 4
ow so make sure to test thoroughly. – Spencer Shattuck Apr 27 '20 at 20:45