gpt4 book ai didi

php - 创建文本文件并让用户选择下载它 PHP

转载 作者:行者123 更新时间:2023-11-29 17:43:35 25 4
gpt4 key购买 nike

我需要为用户提供将查询结果保存在文本文件中并下载的选项。

现在,我有这个代码:

 while ($row = mysqli_fetch_array($resulta)){
echo "<tr>";
echo "<td class='cell0'><a href='Visualizar_Disciplina.php?nome=" .$row['nome'] . "'>" . $row['nome'] . " </a></td>";
echo "<td class='cell0'>" . $row['nomeprofessor'] . "</td>";
echo "<td class='cell0'>" . $row['creditos'] . "</td>";
echo "</tr>";
}

我不知道应该如何在服务器中创建文本文件,然后当用户单击按钮时,就会下载该文件。

我怎样才能做到这一点?

谢谢!

最佳答案

你基本上有两种选择。

替代方案 1

将文件存储在服务器上,并确保用户可以通过某个 URL 访问原始文件。您可能需要一些逻辑来清理文件,因为每次新下载都会在服务器上添加一个新文件,最终会耗尽空间。

<?php
$uri = tempnam("/dir/for/files");
$myfile = fopen($uri, "w") or die("Unable to open file!");

while ($row = mysqli_fetch_array($resulta)){
$out = "<tr>\n";
$out .= "<td class='cell0'><a href='Visualizar_Disciplina.php?nome=" .$row['nome'] . "'>" . $row['nome'] . " </a></td>\n";
$out .= "<td class='cell0'>" . $row['nomeprofessor'] . "</td>\n";
$out .= "<td class='cell0'>" . $row['creditos'] . "</td>\n";
$out .= "</tr>\n";
fwrite($myfile, $out);
}
fclose($myfile);
?>

现在文件已写入服务器,您可以将客户端指向与该文件对应的 url。

替代方案 2

将 download.php 文件放置在某个位置,该文​​件将“生成”要动态下载的内容。为了让用户的浏览器接受文件作为下载而不是可显示的内容,您需要在 download.php 的顶部设置适当的 header

 <?php
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="filename.txt"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');

while ($row = mysqli_fetch_array($resulta)){
echo "<tr>\n";
echo "<td class='cell0'><a href='Visualizar_Disciplina.php?nome=" .$row['nome'] . "'>" . $row['nome'] . " </a></td>\n";
echo "<td class='cell0'>" . $row['nomeprofessor'] . "</td>\n";
echo "<td class='cell0'>" . $row['creditos'] . "</td>\n";
echo "</tr>\n";
}
exit;
?>

关于php - 创建文本文件并让用户选择下载它 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49909786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com