【问题标题】:send custom HTTP response with PHP使用 PHP 发送自定义 HTTP 响应
【发布时间】:2013-06-17 11:41:13
【问题描述】:

我想将自定义 HTTP 响应发送回请求 GET 到 php 脚本的应用程序。正文将采用二进制格式(八位字节流)。我想知道是否有一种简单的方法可以做到这一点?我正在研究 PECL 中的 HttpResponse 类,但现在无法安装它。我真的不需要它附带的所有其他功能,所以我正在寻找更简单的东西。

任何帮助将不胜感激。

【问题讨论】:

标签: php pear httpresponse pecl


【解决方案1】:

PHP 内置了 header() 函数,因此您可以自定义响应而不需要额外的库:

<?php

header('Content-Type: application/octet-stream');
header('X-Powered-By: l3utterfly');

echo $binary_data;

?>

【讨论】:

  • 哦...我从不知道您可以回显二进制数据...(我是 PHP 新手 :P)感谢您的回答,这比预期的要简单得多!
  • 后续问题:我可以使用header来输出自定义headers吗?例如 header("custom-header: 121316818");我的应用程序将知道如何解析它,所以我并不真正关心是否符合 HTTP 标准。
【解决方案2】:

您始终可以使用header() 函数设置 HTTP 标头,然后使用 print、echo 或任何其他常用方式简单地输出二进制数据。将 Content-Type http 标头发送到八位字节流,它应该可以正常工作。

【讨论】:

    【解决方案3】:

    您可以使用header 函数发送回您想要的任何响应。如果您想发回客户响应代码,您可以使用:

    <?
      $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0');
    
      //change the code and message to whatever. But I would keep it valid codes so browsers can handle it.
      //see http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
    
      header($protocol . ' 404 Not Found');
      exit();
    ?>
    

    如果要发送二进制数据,请将标头更改为正确的内容类型并回显二进制数据。

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2016-08-17
      相关资源
      最近更新 更多