使用file_get_contents时如何维护文本布局?

时间:2010-08-15 11:38:59

标签: php html

假设我有以下文本文件:

  1. 这是文本文件的第一行。
  2. 这是第二行,
  3. 这里是第三个。
  4. 使用时

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

    输出

      

    这是文本的第一行   文件。这是第二行,并且   这是第三个。

    如何阻止布局更改?

    提前致谢: - )

2 个答案:

答案 0 :(得分:4)

在HTML中,新行字符(\n\r\n)不会导致实际换行符出现在呈现的页面中。以下是两种可能的解决方案:

  1. 使用nl2br()功能将换行符转换为<BR>标记。这适用于某些布局,但不适用于ASCII艺术或依赖多个空格的其他布局(在HTML中缩小为一个空格)。

    echo nl2br(file_get_contents(...));
    
  2. 将结果包装在<pre>标签中。这将保留所有布局,但看起来有点难看。如果您愿意,可以使用CSS设置<pre>标签的样式,使其更漂亮。

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

答案 1 :(得分:0)

每次使用PHP时,都必须分两部分完成:

  1. 以纯HTML编写页面。使其按预期工作。如果有问题,请提出HTML问题。
  2. 编写一个生成相同文本的PHP脚本。
  3. 可以帮助您的HTML标记是<pre>

    告诉浏览器这里抄袭纯文本的另一种方法是发送适当的HTTP标头
    因此,此文本是此页面上显示的唯一文本,

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