Php 如何将文本输出到文件?

Php 如何将文本输出到文件?,php,mysql,Php,Mysql,以下是我当前的代码: $link = mysqli_connect("localhost", "username", "password", "database"); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT id, title FROM titles WHERE type = 'movie'

以下是我当前的代码:

$link = mysqli_connect("localhost", "username", "password", "database");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT id, title FROM titles WHERE type = 'movie' ORDER BY id ASC";

if ($result = mysqli_query($link, $query)) {

    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s-%s\n", $row["id"], $row["title"]);
    }

    mysqli_free_result($result);
}

mysqli_close($link);
使用
printf
可以正确打印MySQL表中的所有行


但是,我不想打印它,而是想将其写入文本文件。这可能与printf有关吗?或者我应该做些其他的事情吗?

如果你想将它写入磁盘,在服务器上,你应该查看
fopen()
fwrite()
fclose()

您也可以使用
file\u put\u contents
,但这需要您在将内容写入文件之前准备好所有内容(如果您有很多记录,这可能会导致高内存使用率),或者如果您使用“append”模式,一次写入一行,则每次打开和关闭文件的开销都将由您承担

如果您想让浏览器下载它,而不仅仅是显示内容,那么您需要在响应中添加标题

header('Content-Disposition: attachment; filename="'.$filename.'"');
最好在它之前添加一些内容类型。例如,在您的情况下:

header('Content-type: text/plain');

如果要将其写入服务器上的磁盘,应查看
fopen()
fwrite()
fclose()

您也可以使用
file\u put\u contents
,但这需要您在将内容写入文件之前准备好所有内容(如果您有很多记录,这可能会导致高内存使用率),或者如果您使用“append”模式,一次写入一行,则每次打开和关闭文件的开销都将由您承担

如果您想让浏览器下载它,而不仅仅是显示内容,那么您需要在响应中添加标题

header('Content-Disposition: attachment; filename="'.$filename.'"');
最好在它之前添加一些内容类型。例如,在您的情况下:

header('Content-type: text/plain');

用于写入文件的fprintf
file\u put\u内容
也可以工作

  $fp = fopen('output.txt', 'w');
  $in = 'text';
  fprintf($fp, '%s', $in);

用于写入文件的fprintf
file\u put\u内容
也可以工作

  $fp = fopen('output.txt', 'w');
  $in = 'text';
  fprintf($fp, '%s', $in);
使用
fprintf()
。它的工作原理类似于
printf()
,但会打印到文件流

if ($result = mysqli_query($link, $query)) {
    if ($fp = fopen("filename.txt", "w")) {
        while ($row = mysqli_fetch_assoc($result)) {
            fprintf ($fp, "%s-%s\n", $row["id"], $row["title"]);
        }
        fclose($fp);
    }

    mysqli_free_result($result);
}
使用
fprintf()
。它的工作原理类似于
printf()
,但会打印到文件流

if ($result = mysqli_query($link, $query)) {
    if ($fp = fopen("filename.txt", "w")) {
        while ($row = mysqli_fetch_assoc($result)) {
            fprintf ($fp, "%s-%s\n", $row["id"], $row["title"]);
        }
        fclose($fp);
    }

    mysqli_free_result($result);
}

使用File\u put\u contents您应该自己尝试编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。请务必阅读。您可以将
fopen()
fwrite()
与append结合使用,或者如果您有访问权限,您可以从mysql界面执行此操作。您想将输出放在单独的文件中吗?简单:CTRL+C&CTRL+VUse文件\u放置\u内容您应该尝试自己编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。请务必阅读。您可以将
fopen()
fwrite()
与append结合使用,或者如果您有访问权限,您可以从mysql界面执行此操作。您想将输出放在单独的文件中吗?简单:CTRL+C和CTRL+V