PHP:回显文件内容,如中所示;不同的;文件名?

PHP:回显文件内容,如中所示;不同的;文件名?,php,echo,file-get-contents,Php,Echo,File Get Contents,在PHP中,我读取一个文件,然后回显它。比如: rss.php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET"); header("Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token"); heade

在PHP中,我读取一个文件,然后回显它。比如:

rss.php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token");
header('Content-Type: application/xml');

echo file_get_contents('../../../news.rss');
但是当我通过浏览器访问这个
rss.php
文件时,它给出了正确的rss文件内容,但文件名仍然是“rss.php”

我需要将其作为“news.rss”文件名下载。

有什么建议吗


(请让我们忘记为什么我不直接访问“news.rss”文件。后面有一些重要的故事。)谢谢大家。:)

试试这个,我目前正在我的其他程序中使用这个:

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=news.rss');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize('../../../news.rss');
readfile('../../../news.rss');
exit;
我们使用读取文件并将其输出到输出缓冲区,而不是回显内容

更新:

请注意,上述代码仅用于下载文件(无需查看)。如果你真的想先显示文件的内容,你可以先显示它,然后再显示另一个链接,或者使用“下载”文件的按钮


我也有和你一样的程序。我有一个文件的查看/更新程序,用户可以在其中键入,使用fwrite()保存,然后我有一个按钮,可以使用上述代码下载文件

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=news.rss');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize('../../../news.rss');
readfile('../../../news.rss');
exit;
我们使用读取文件并将其输出到输出缓冲区,而不是回显内容

更新:

请注意,上述代码仅用于下载文件(无需查看)。如果你真的想先显示文件的内容,你可以先显示它,然后再显示另一个链接,或者使用“下载”文件的按钮


我也有和你一样的程序。我有一个文件的查看/更新,用户可以在其中键入,使用fwrite()保存,然后我有一个按钮,可以使用上面的代码下载文件

,但是在输出之前我不能做任何预处理工作?我的意思是,你知道,在回显之前,我必须对原始文件
news.rss
进行(附加/修改/etc)操作。你可能需要一个链接或按钮来执行上述代码。并将其命名为“下载/保存”。将查看和下载分开,但是在输出之前我不能做任何预处理工作?我的意思是,你知道,在回显之前,我必须对原始文件
news.rss
进行(附加/修改/etc)操作。你可能需要一个链接或按钮来执行上述代码。并将其命名为“下载/保存”。将查看和下载分开