【问题标题】:How can I use multiple PHP header content types on the same page? is this possible?如何在同一页面上使用多个 PHP 标头内容类型?这可能吗?
【发布时间】:2011-01-26 13:07:08
【问题描述】:

是否可以在一个文档中使用多种标题类型?例如:

header("Content-type: image/jpeg");
header('Content-Type: text/html; charset=utf-8');

将整个页面返回为 text/html... 而

header('Content-Type: text/html; charset=utf-8');
header("Content-type: image/jpeg");

将整个页面作为图像返回.... 如何在同一页面上使用两种类型的内容?我在顶部使用 ob_start(),在开头使用 ob_end_flush()。

【问题讨论】:

  • 你为什么要这样做?不可能...
  • 我也想这样做,因为在研究 HTTP 标头之前我不了解它们。有一个我觉得有用的 php 例程取决于 header("Content-type: image/jpeg");我想将它纳入其他例程。 Erik 的建议完全适合我。

标签: php header content-type


【解决方案1】:

你不能。但是你可以在你的 HTML 中做这样的事情:

<img src="my_img.php" />

当然,my_img.php 是一个 PHP 文件,它有一个 header("Content-type: image/jpeg"); 行,并输出您的图像。

【讨论】:

    【解决方案2】:

    不,资源只有一种媒体类型。 HTTP allows multipart messages 可以包含多个实体。但是今天的浏览器并没有广泛支持。

    【讨论】:

    • 这很有帮助...我想我的答案是使用 其中 my_img.php 本质上是一个输出图像的函数。
    【解决方案3】:

    content-type 的全部意义在于告诉浏览器如何处理请求。如果您发送text/htmlimage/jpeg,您希望浏览器做什么?它必须是一个或另一个,它不能两者兼而有之。 text/html 是一个包罗万象的东西。

    【讨论】:

      【解决方案4】:

      当人们质疑为什么有人想要做他们在最初问题中提出的问题时,我确实觉得这有点奇怪。

      为了与 OP 类似的要求,我花了几个小时研究替代解决方案,但这些解决方案不起作用,这正是我所需要的。

      我需要的用途是显示从根目录上方读取的多个图像,因此通常无法通过 IMG 标签获得,因此 Erik 发布的解决方案可以精美而优雅地完成这项工作。

      <img src="my_img.php" />
      

      您可以像往常一样向此包装文件传递参数,以便它找到相关图像、创建缩略图版本或其他任何内容。

      总之,很好的回答,谢谢。

      【讨论】:

        【解决方案5】:

        注意您传递给包装文件的参数,以便它找到相关图像,并且只找到相关图像,而不是 /etc/passwd 或任何其他文件。

        最好在脚本中硬编码基本目录,并且不要接受输入中的任何层次结构。最好不要使用真正的文件名,而是在映射表中进行查找(在数据库、脚本中的数组或任何地方)

        【讨论】:

          【解决方案6】:

          您不能同时使用两者,但您可以根据查询参数或类似参数选择使用其中一个。

          关于在一个页面中使用这两种类型的内容 - 例如,在具有 &lt;img&gt; 元素的普通 HTML 页面中,它们是单独的 HTTP 请求,因此它们具有自己的 Content-Type 标头。

          不完全确定您要在这里实现什么...

          【讨论】:

          • 嗯...好的,谢谢。我正在尝试使用一个函数动态生成缩略图,该函数在运行 imagesampleresize 等之后使用 imagejpg($img) 返回图像资源......问题是我似乎无法在页面上通过调用一个函数......页面显示文本,或者显示图像......似乎无法在文本/html页面上输出图像资源。
          猜你喜欢
          • 2014-08-08
          • 1970-01-01
          • 2019-11-02
          • 1970-01-01
          • 1970-01-01
          • 2010-10-04
          • 2013-04-13
          • 1970-01-01
          • 2017-07-22
          相关资源
          最近更新 更多