为什么当我将纯文本文件上传到服务器时,它使用courier字体显示(在Safari中),当我从php输出时显示为Times?
答案 0 :(得分:5)
纯文本是纯文本。它没有自己的格式化信息,浏览器将决定如何显示它。直接显示文件,Web服务器将为其提供mime类型text/plain
。这通常会指示浏览器使用固定宽度字体(Courier)。但是如果用PHP输出它,服务器就会以text/html
(HTML)的形式发送它,浏览器使用HTML的默认字体(在你的情况下是Times)。
对于纯文本,您无法控制最终用户的浏览器如何呈现它。该设置完全取决于浏览器默认值或用户首选项。当然,当PHP使用CSS声明输出时,您可以影响它以HTML显示的方式。
答案 1 :(得分:2)
这是您的浏览器指定的。如果您喜欢其他字体,可以在浏览器设置中进行设置。你所描述的是一种常见的设置。
服务器仅为文本文件指定所谓的内容类型text/plain
,为php页面指定text/html
。
用户使用浏览器相应地显示它们,如字体和大小。如果你将CSS添加到你的html输出中,并且用户允许你的网站提供CSS用于显示目的(这也很常见),那么将使用CSS样式信息,这可能会改变字体和大小。
答案 2 :(得分:2)
那是因为Content-type
HTTP标头。
在txt文件的情况下为text/plain
,在php
text/html
Web服务器检查文件的mime类型(通过扩展判断)并发送适当的标题。