输出缓冲区将html标记放在文件的末尾

时间:2014-03-28 07:17:49

标签: php html output-buffering

我希望用户能够下载动态生成的文件(不存储在服务器上)。

为此,我使用test caseform按钮创建了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}}吗?

1 个答案:

答案 0 :(得分:2)

无需输出缓冲。您可以在$profile echo时使用echo strip_tags($profile); 删除html代码(使用strip_tags函数)

exit

输出txt内容后,也不要忘记进行createTxt($profile); exit; 调用。

{{1}}