2011-08-26 59 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类型(通过扩展判断)的文件,并发送相应的标题。