2010-08-03 59 views
1

我在php中創建文本文件,文件已經以正確的格式從本地pc創建,如果我在線嘗試,則不存在換行符,也不顯示格式化。在PHP中創建txt文件

我正在使用此代碼。

header("Content-type: application/txt"); 
header("Content-Length: ". sizeof($content)); 
header("Content-Disposition: inline; filename=". $file); 
print $content; die; 

如果有人有解決方案,請與我分享。

在此先感謝。

+0

你想要顯示的文件瀏覽器或提示下載? – Gordon 2010-08-03 13:55:02

+0

我已經試過這個「text/plain」,但不能正確顯示。 – 2010-08-03 13:50:32

回答

1

嘗試

header('Content-Type: text/plain'); 
readfile($file); 

這應該足以將文件發送明文。如果由於一些不明確的原因,這不適合你,最後的辦法是將內容包裝在<pre>標籤中。

6

你有一個錯字:

header("Content-Length: ". sizeof($content)); 

也,你應該使用

header("Content-type: text/plain"); 
1
  • 正確的內容類型爲text/plain
  • Content-Length,不Content-Lenght,並且通常PHP將發送這個給你
  • 而不是die,更好地使用exit

問題可能是由於錯誤的MIME類型 - 一些瀏覽器會忽略無效的內容類型並將其顯示爲HTML。

+0

使用die有什麼問題?這只是退出的別名。 – 2010-08-03 13:50:28

+1

'這個語言結構等同於exit()' - 來自die man page ...爲什麼使用exit()? – 2010-08-03 13:51:56

+0

我的印象是「死亡」表示出現錯誤,因爲出現問題時立即停止執行,而「退出」意味着您立即停止執行,因爲您已完成任何您想要執行的操作。從技術上講,他們是一樣的,但直觀上,我會說他們表示不同的意圖。 – tdammers 2010-08-03 13:56:03

1

試試這個

$content = str_replace("\n\r","\n",$content);

$content = str_replace("\r","\n",$content);

header("Content-type: text/plain");

header("Content-Length: ". sizeof($content));

header("Content-Disposition: inline; filename=". $file);

print $content; die;