2014-03-28 61 views
0

我希望用戶能夠下載即時生成的文件(未存儲在服務器上)。輸出緩衝區將HTML標籤放在文件末尾

爲了做到這一點,我創建了test case簡單的網站與formsubmit按鈕。

<!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> 

然後我已創建條件$_POST何時執行createTxt方法每次將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

+0

不可能沒有看到該網頁的完整代碼「thispage.php」 –

+0

我建議使用'標題(「內容類型:文本/無格式」);'代替應用/八位字節流 – jtheman

+0

M.弗朗茲thispage.php是我展示的非常相同的頁面。在'action'字段中的回調是在同一頁 – Grzzzzzzzzzzzzz

回答

2

不需要輸出緩衝。您可以(使用strip_tags功能)

echo strip_tags($profile); 

也不要忘記有你的輸出TXT內容後exit呼叫從$profileecho荷蘭國際集團剝離它的HTML標籤了。

createTxt($profile); 
exit; 
+0

I $ profile是我編輯過的問題的字符串。問題是,有清晰的標籤

標籤之外顯示的文件 – Grzzzzzzzzzzzzz

+0

對不起,無法理解編輯。 $ profile已經是一個字符串了? – mesutozer

+0

是的。我很抱歉讓你感到困惑;/ – Grzzzzzzzzzzzzz