Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 浏览器、CLI和应用程序的标题、内容类型默认值_Php_Http_Content Type - Fatal编程技术网

Php 浏览器、CLI和应用程序的标题、内容类型默认值

Php 浏览器、CLI和应用程序的标题、内容类型默认值,php,http,content-type,Php,Http,Content Type,如果不是通过标题发送自己的内容类型,则默认情况下每个浏览器都定义了“自己的”。例如,Firefox返回text/html;字符集=utf-8 如果我在空白页面上检查Firefox并重新加载一些PHP文件,它将返回text/html;字符集=utf-8内容类型 这是从Firefox定义的吗?还是APACHE服务器 我混淆了默认的“内容类型”,或者在哪里可以找到所有默认内容类型头的列表(如果不是由客户端定义或发送HTTP头内容类型) 例如,在哪个应用程序上使用RFC 822请求头,如text/pla

如果不是通过标题发送自己的内容类型,则默认情况下每个浏览器都定义了“自己的”。例如,Firefox返回
text/html;字符集=utf-8

如果我在空白页面上检查Firefox并重新加载一些PHP文件,它将返回
text/html;字符集=utf-8
内容类型

这是从Firefox定义的吗?还是APACHE服务器

我混淆了默认的“内容类型”,或者在哪里可以找到所有默认内容类型头的列表(如果不是由客户端定义或发送HTTP头内容类型)

例如,在哪个应用程序上使用RFC 822请求头,如
text/plain;字符集=美国ascii


  • 我可以做的是首先从浏览器中获取可用的标题(例如:
    text/plain;text/html
    ),然后在内容类型中设置
    text/plain
    (如果存在)

  • 如果未发送标题,我想知道默认情况下浏览器/cli应为哪种内容类型。是否所有用户代理的所有默认内容类型列表



  • 真正的问题:如何在默认情况下使用PHP从浏览器获取
    内容类型
    ,但不接收
    NULL
    。在浏览器上,如果您
    刷新
    ,您将看到
    内容类型
    标题,但在PHP上您将不会收到。

    我的解决方案是这样的:

  • 检查浏览器中是否存在HTTP_ACCEPT,如果存在,例如:

    text/html
    
    生成返回内容类型:
    text/html

    如果不存在,请检查

    */*
    
    使返回内容类型:

     text/plain; us-ascii
    
    这是由RFC 822提供的:

    然后,如果未定义,则使用
    text/plain

  • 如果不存在HTTP,则使用RFC 822声明:

    text/plain; us-ascii
    
    这是accept for CLI,应该由RFC 822定义为ASCII

  • 较旧的浏览器(如SAFARI)检查URL(如
    .htm
    中的扩展名,然后应该是
    text/html
    ),以其他方式返回
    text/plain
    。较新的浏览器默认为
    text/html

  • 如果未定义,Firefox2将返回
    application/*
    ,因此在某些情况下,您可以使用
    USER\u AGENT
    进行检查,然后默认设置去极化。这是旧的浏览器,您应该避免使用它

  • 我写了这个剧本,效果很好。如果头是脚本强制的,并且是针,则应发送头


  • 如果你有一些建议或者我有一些错误,请纠正我

    你的问题很难理解。我读了10遍并放弃了:
    如果不是通过标题发送自己的内容类型,每个浏览器默认都定义了“自己的”。
    打开firefox。转到
    about:config
    并查找
    network.http.accept.default
    。您可以看到默认的http接受头。我需要其他浏览器的列表。如果您尝试使用
    $\u SERVER
    获取
    内容类型
    ,您将从firefox获得默认的http
    网络.http.accept.default
    值。如果使用页眉进行设置,则会发生更改。我想从$\u服务器获取,但这是不可能的。默认情况下,PHP HTTP\u内容\u类型为空。若您通过发送的标题进行设置,它将更改并返回值。但我想知道何时为空之前和之后的情况。请检查以下内容:一些详细信息,Chromium是如何做到的: