PHP/HTML を使用して空白の書式を維持するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/36656

  •  09-06-2019
  •  | 
  •  

質問

ファイルからテキストを解析し、文字列に保存しています。問題は、元のファイルのテキストの一部に次のものが含まれていることです。 ASCII art そして私が守りたいもの。文字列を出力すると、 HTML page, たとえそれが同じ書式設定とすべてのものを持っているとしても、 HTML, 、スペースと改行は保持されません。テキストを印刷する最良の方法は何ですか? HTML 元のテキスト ファイルとまったく同じでしょうか?
例を挙げたいと思いますが、残念ながら、このマークダウン エディターでは正しく表示できませんでした:P
基本的には表示方法についての提案が欲しいです ASCII art in HTML.

役に立ちましたか?

解決

<pre> タグ (フォーマット済み) を使用します。これにより、等幅フォント (アート用) が使用され、すべての空白が保持されます。

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

</pre>  

< を < に変換する必要がある場合があります。さんの

他のヒント

<pre> そして </pre> テキストエリアなどでは理想的ではないかもしれません。

改行を保持したい場合 - \n そして \n\r 使用 nl2br UnkwnTech と Brad Mace が言及したとおりです。

スペースを確保したい場合は、 str_replace:

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

両方がこれを使用する場合:

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

データを印刷する場合は、 nl2br() 変換する \n そして \r\n の中へ <br>

データベースから取得したテキストを保存することを探している人にとっては、CSSを次のように設定することでうまくいきました。

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

HTMLで:

<pre >
     <?php echo htmlentities($yourText ) ; ?>
</pre>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top