Domanda

Sto analizzando il testo da un file e memorizzandolo in una stringa.Il problema è che parte del testo nei file originali contiene ASCII art e quant'altro che vorrei preservare.Quando stampo la stringa sul file HTML page, anche se ha la stessa formattazione e tutto il resto da quando è presente HTML, la spaziatura e le interruzioni di riga non vengono conservate.Qual è il modo migliore per stampare il testo in HTML esattamente come era nel file di testo originale?
Vorrei fare un esempio, ma sfortunatamente non sono riuscito a visualizzarlo correttamente in questo editor di markdown :P
Fondamentalmente, vorrei suggerimenti su come visualizzare ASCII art in HTML.

È stato utile?

Soluzione

usa il tag <pre> (preformattato), che utilizzerà un carattere a spaziatura fissa (per la tua grafica) e manterrà tutto lo spazio bianco

<pre>
text goes here and here 
             and here and here            Some out here
     ▄             ▄█▄ █▄       ▄
 ▄█▀█▓ ▄▓▀▀█▀ ▀▀▀█▓▀▀ ▀▀    ▄█▀█▓▀▀▀▀▀▓▄▀██▀▀
██  ██ ▀██▄▄ ▄█  ▀ ░▒ ░▒   ██  ██ ▄█▄ █▀ ██
█▓▄▀██  ▄ ▀█▌▓█    ▒▓ ▒▓   █▓▄▀██ ▓█ ▀▄  █▓
█▒  █▓ ██▄▓▀ ▀█▄▄█▄▓█ ▓█   █▒  █▓ ▒█  ▓█▄ ▒
    ▀▒           ▀  ▀ █▀       ▀▒  ▀  █▀  ░

</pre>  

Potrebbe essere necessario convertire qualsiasi < in <'S

Altri suggerimenti

IL <pre> E </pre> potrebbe non essere l'ideale in textarea ecc.

Quando si vuole preservare una nuova linea - \n E \n\r utilizzo nl2br come menzionato da UnkwnTech e Brad Mace.

Quando si vuole preservare gli spazi utilizzare str_replace:

str_replace(' ', '&nbsp;', $stringVariable);

Quando entrambi usano questo:

$result = str_replace(' ', '&nbsp;', $stringVariable);
$result = nl2br($result);

Quando stampi i dati usa nl2br() convertire \n E \r\n in <br>

Per tutti coloro che cercano di preservare il testo recuperato dal database, questo ha funzionato per me, impostando CSS come segue,

pre {
     white-space: pre-line;
     text-align : left;
  }

nell'html:

<pre >
     <?php echo htmlentities($yourText ) ; ?>
</pre>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top