2010-08-15 3 views
2

Скажем, у меня есть следующий текстовый файл:Как сохранить текстовый макет при использовании file_get_contents?

  1. Это первая строка текстового файла.
  2. Это вторая линия,
  3. и здесь третий.

При использовании

echo file_get_contents($_SERVER{'DOCUMENT_ROOT'} . "/file.txt"); 

Выходной сигнал является

Это первая строка текстового файла . Это вторая строка, и здесь третья.

Как предотвратить изменение макета?

Заранее спасибо :-)

+0

редактировать свои тэги –

ответ

4

в HTML, символы новой строки (\n или \r\n) не приводят к фактической разрыв строки появится в отображаемой странице. Здесь возможно два решения:

  1. Используйте функцию nl2br() преобразовать пустые строки в <BR> тег. Это будет работать для некоторых макетов, но не для искусства ASCII или для других, которые полагаются на несколько пробелов (которые сводятся к одному в HTML).

    echo nl2br(file_get_contents(...)); 
    
  2. Wrap результат в <pre> тегов. Это будет держать все макет, но может выглядеть немного уродливо. Вы можете использовать теги <pre> с CSS, чтобы сделать их красивее, если хотите.

    echo '<pre>' . file_get_contents(...) . '</pre>'; 
    
+0

Спасибо за ваш ответ. – Chris

0

Каждый раз, когда вы собираетесь использовать PHP, это должно быть сделано в 2-х частей:

  1. Написать свою страницу в чистом HTML. Сделайте работу по своему желанию. Задавайте вопросы HTML, если они есть.
  2. Напишите скрипт PHP, который создает тот же текст.

HTML-тег, который может помочь вам в <pre>

Другой способ сказать браузеру, что здесь мотыги простой текст, чтобы отправить соответствующий заголовок HTTP
Таким образом, этот текст является только текст отображается на эта страница,

header("Content-type: text/plain"); 
readfile($_SERVER['DOCUMENT_ROOT'] . "/file.txt"); 
+0

Полезно знать о заголовке, хотя у меня есть Muliple текстовых файлов в качестве источников. :-) – Chris