PHP ReadFile输出缩进?

时间:2016-01-27 07:24:38

标签: php html readfile

我正在使用一些PHP代码将文本文件导入HTML文档。原因是因为我经常刷新页面,所以文本总是新的。这是我的代码:

<!DOCTYPE html>

<head>

    <meta http-equiv="refresh" content="5">

</head>

<body>

    <xmp>
    <?php

        $date = date("Y-m-d"); 
        $file = "..\\chat logs\\$date.txt";
        readfile($file);

    ?>
    </xmp>

</body>

</html>

$ date.txt文件没有特殊的间距。没有缩进。问题是第一行总是有这个输出:

        [ 00:57:45 ] : <Overlord> Enemy spotted
[ 01:00:51 ] : <ShadowLordGamin> HI 
[ 01:00:58 ] : <ShadowLordGamin> just got the game today :D
[ 01:06:42 ] : <Brazdnt> D: 

有没有办法删除初始缩进?任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

首先,<xmp>已被弃用且受到严重支持。您应该使用<pre>而使用htmlspecialchars()转义文本(这要求您使用file_get_contents()而非readfile()来阅读文字。

(编辑:它不仅被弃用,它也很危险,因为它会打开您的站点以进行跨站点脚本攻击。)

解决您的问题:<xmp>(和<pre>)显示开始和结束标记之间的所有字符,包括用于格式化代码的任何空格。您需要确保html开始标记与<?php开头标记之间没有空格:

<pre><?php
    $date = date("Y-m-d"); 
    $file = "..\\chat logs\\$date.txt";
    echo htmlspecialchars(file_get_contents($file));
?></pre>