正确的语法是什么?
header('Content-Disposition: attachment; filename="{$_SESSION['name']} . '.txt');
这个文件可以工作,但只有在"查看源代码"(HTML没有格式化,但包含正确的换行符)时才能正常工作。
<?php
header("Content-type: text/html");
session_start();
if(file_exists("chat") && filesize("chat") > 0){
$handle = fopen("chat", "r");
$contents = fread($handle, filesize("chat"));
fclose($handle);
ob_start();
$download = strip_tags($contents, '<br>');
$processed = preg_replace('#<br's*/?>#i', "'n", $download);
echo $processed;
$var = ob_get_clean();
echo $var;
}
?>
$_SESSION['name']
变量类似于guest_158512
,如果您查看我试图保存的页面的源代码,则它具有所有换行符。如何使用正确的语法将当前页面保存为guest_158512.txt
?
您的问题是尝试使用单引号。单引号不会在PHP中插入变量。
您也未能正确终止字符串,可能是因为在字符串中放入了更多的单引号。尝试:
header('Content-Disposition: attachment; filename="'.$_SESSION['name'].'.txt"');
Kolink还指出,应该使用Content-Type: text/plain
来提供纯文本非HTML文件。
header("Content-Disposition: attachment; filename='"".$_SESSION['name'].".txt'"");
header("Content-Type: text/plain");
为了将来参考,使用适当的代码编辑器(如Notepad++)会显示您的引号严重不匹配。
你很接近。使用单引号,您可以执行以下操作:
header('Content-Disposition: attachment; filename="' . $_SESSION['name'] . '.txt"');