我希望用户能够下载动态生成的文件(不存储在服务器上)。
为此,我使用test case
和form
按钮创建了submit
简单网站。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Some Test tittle</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<div>
<div>
<form action='/thispage.php' method='post' class='asholder' enctype="multipart/form-data">
<input type='submit' value='Generate' name='generatetxt'>
</form>
</div>
</div>
<div id='bottom-bar'></div>
</html>
然后,每当createTxt
$_POST
字段为generatetxt
字段时,我就创建了执行if (in_array('generatetxt',$_POST)){
ob_end_clean();
createTxt("some other text");
ob_flush();
}
方法的条件:
createTxt
和function createTxt($profile){
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment;filename="test.txt"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
echo "SOME TEXT SOME TEXT SOMTE TEXT SOME TEXT\n";
echo $profile;
}
函数
.txt
然而,每当用户下载SOME TEXT SOME TEXT SOMTE TEXT SOME TEXT
some other text
</div>
</div>
<div id='bottom-bar'></div>
</html>
文件时,他就会得到类似的内容:
html tags
任何人都可以提示我如何使用输出缓冲区从下载的文件内容中删除{{1}}吗?
答案 0 :(得分:2)
无需输出缓冲。您可以在$profile
echo
时使用echo strip_tags($profile);
删除html代码(使用strip_tags函数)
exit
输出txt内容后,也不要忘记进行createTxt($profile);
exit;
调用。
{{1}}