2008-08-31 1 views
25

나는 파일에서 텍스트를 파싱하고 그것을 문자열에 저장하고있다. 문제는 원본 파일에있는 텍스트 중 일부에 ASCII art과 내가 보존하고 싶은 것 등이 있다는 것입니다. HTML page에 문자열을 인쇄 할 때 동일한 서식과 모든 내용을 가지고 있더라도 HTML에 있기 때문에 간격과 줄 바꿈이 유지되지 않습니다. HTML의 텍스트를 원본 텍스트 파일과 똑같이 인쇄하는 가장 좋은 방법은 무엇입니까?
예제를 제공하고 싶지만 불행하게도이 마크 다운 편집기에서 제대로 표시되지 않았습니다. P
기본적으로 ASCII art in HTML을 표시하는 방법에 대한 제안이 필요합니다.PHP/HTML을 사용하여 공백을 유지하려면 어떻게해야합니까?

답변

52

\n\r\n을 변환하고 모든 흰색을 유지하기 위해 nl2br()를 사용하여 인쇄 할 때 공간

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

</pre> 

당신은 & LT 모든 < 's의 변환해야 할 수도 있습니다; 의

+2

및 & nbsp; & 처음입니다. – Kornel

+3

+1 1337 빈티지 스타일 – GerManson

+1

아, ascii 예술의 좋은 올 '일 :) –

6

당신은 데이터가 (당신의 예술에 대한) 모노 간격 글꼴을 사용하는 < 사전 > 태그 (사전 포맷)를 사용 <br>

10

<pre></pre>가 텍스트 영역 등에 적합하지 않을 수 있습니다 ..

새로운 라인을 유지하고자하는 - \n\n\r 사용 UnkwnTech 브래드 메이스에 의해 언급 한 바와 같이 nl2br을. 보존하고자하는 경우

공백은 str_replace를 사용

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

모두이 사용하는 경우 : 데이터베이스에서 가져온 텍스트를 보존하기위한 searchng 모든 사람들을 위해

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

을,이 날 위해 일했습니다, CSS를 다음과 같이 설정하십시오 :

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

in html :

<pre > 
    <?php echo htmlentities($yourText) ; ?> 
</pre>