2011-08-26 64 views
0

爲什麼當我將純文本文件上傳到服務器時,它使用courier字體顯示(在Safari中),並且當我從php輸出時顯示爲Times?php vs txt display - courier and times

+0

檢查瀏覽器的「字體」首選項。 – Tomalak

+0

這是與瀏覽器相關的問題,與PHP,unicode和編碼無關。 「文本」沒有「屬性」「字體」。這只是「文字」。 – J0HN

回答

5

純文本是純文本。它沒有自己的格式信息,瀏覽器將決定如何顯示它。直接顯示文件,Web服務器將爲它提供一個MIME類型text/plain。這通常會指示瀏覽器使用固定寬度的字體(Courier)。但是,如果您使用PHP輸出它,服務器將以text/html(HTML)形式發送它,並且瀏覽器使用其默認字體HTML(Times,在您的情況下)。

對於純文本,您無法控制最終用戶的瀏覽器如何呈現它。該設置完全取決於瀏覽器默認值或用戶首選項。當然,你可以影響PHP以CSS聲明輸出時如何顯示爲HTML。

+0

感謝我的目的,我簡單地將我的純文本.txt文件重命名爲.html – cannyboy

2

這是您的瀏覽器指定的。如果您喜歡其他字體,您可以在瀏覽器設置中進行設置。你所描述的是一個常見的設置。

服務器僅指定所謂的內容類型text/plain作爲文本文件,text/html作爲php頁面。

用戶使用瀏覽器相應地顯示它們,如字體和大小。如果您將CSS添加到您的html輸出中,並且用戶允許您的網站提供用於顯示目的的CSS(這也很常見),那麼將使用CSS樣式信息來更改字體和大小。

+0

Downvoter請分享您的想法,可能會有所幫助。 – hakre

+0

我沒有downvote,但是當你的答案只有第一段時,它並沒有真正回答這個問題,即「爲什麼相同的文本如果使用PHP生成時有不同的字體」。 – JJJ

+0

@Juhana:呃,我實際上是在向那些因好奇而退下來的人問。 – hakre

2

這是因爲Content-type HTTP標頭。 它在txt文件的情況下text/plaintext/html用PHP

的Web服務器做檢查MIME類型(通過擴展判斷)的文件,併發送相應的標題。

相關問題