将页面内容下载为文本文件

时间:2019-01-31 21:21:26

标签: php html backend

我试图弄清楚如何下载由页面上的内容制成的文本文件。就我而言,这只是纯文本形式的聊天记录。我在管理面板中有一个按钮,可以用来查看聊天记录,还有一个按钮可以用来下载所说的聊天记录。

有关日志格式的示例:

  

2019-01-30 08:38:00这是聊天记录。

这就是页面上的所有内容。

我用来查看聊天记录的按钮。

<td><a href="chatlog.php? 
user='.$rows['user'].'&reportedby='.$rows['reported_by'].'" class="btn btn- 
primary btn-sm">View messages</a></td>

 <?php session_start();
    include 'includes/db.php';  
    $sender = $_GET['user'];
    $receiver = $_GET['reportedby'];

    $query = "SELECT * FROM messages WHERE sender='$sender' AND receiver='$receiver'";

    $runq = mysqli_query($conn,$query);

    while($rows = mysqli_fetch_assoc($runq)) {
        echo($rows['date'] . " " . $rows['content']."<br/>");
    }

?>

2 个答案:

答案 0 :(得分:1)

使用php代码,您可以在下面的示例中完成

    <?php 
        header("Content-type: text/plain");
        header("Content-Disposition: attachment; filename=savethis.txt");
        // Read your file and print it's content.
        // print "This is some text...\n";
        `enter code here`
    ?>

答案 1 :(得分:0)

您可以使用Content-TypeContent-Disposition标头对此文件进行归档:

session_start();
include 'includes/db.php';
$sender = mysqli_real_escape_string(conn, $_GET['user']);
$receiver = mysqli_real_escape_string(conn, $_GET['reportedby']);

$query = "SELECT * FROM messages WHERE sender='$sender' AND receiver='$receiver'";

$runq = mysqli_query($conn, $query);

header('Content-Type: text/plain');
header("Content-Disposition: attachment; filename=chatlogs.txt");

while($rows = mysqli_fetch_assoc($runq)) {
    echo($rows['date'] . " " . $rows['content']."\r\n");
}

我还用实际的行尾替换了<br/>,因为它是一个文本文件,如果您使用的是Unix系统,则可能必须将其更改为\ n。并且我添加了mysqli_real_escape_string来保护您的查询免受SQL injection的侵害。