Question

J'analyse le texte d'un fichier et je le stocke dans une chaîne.Le problème est qu'une partie du texte des fichiers originaux contient ASCII art et tout ce que j'aimerais préserver.Quand j'imprime la chaîne sur le HTML page, même s'il a le même formatage et tout puisqu'il est en HTML, l'espacement et les sauts de ligne ne sont pas conservés.Quelle est la meilleure façon d'imprimer le texte dans HTML exactement comme dans le fichier texte original ?
J'aimerais donner un exemple, mais malheureusement, je n'ai pas réussi à le faire afficher correctement dans cet éditeur de démarques :P
En gros, j'aimerais des suggestions sur la façon d'afficher ASCII art in HTML.

Était-ce utile?

La solution

utilisez la balise <pre> (préformatée), qui utilisera une police à espacement unique (pour votre art) et conservera tous les espaces blancs

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

</pre>  

Vous devrez peut-être convertir des < en <c'est

Autres conseils

le <pre> et </pre> pourrait ne pas être idéal dans la zone de texte, etc.

Quand on veut conserver une nouvelle ligne - \n et \n\r utiliser nl2br comme mentionné par UnkwnTech et Brad Mace.

Quand on veut préserver les espaces, utiliser str_replace:

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

Quand les deux utilisent ceci :

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

Lorsque vous imprimez les données, utilisez nl2br() convertir \n et \r\n dans <br>

Pour tous ceux qui cherchent à préserver le texte extrait de la base de données, cela a fonctionné pour moi, en définissant CSS comme suit :

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

en HTML :

<pre >
     <?php echo htmlentities($yourText ) ; ?>
</pre>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top