【问题标题】:Get current Content-Type header in PHP在 PHP 中获取当前的 Content-Type 标头
【发布时间】:2014-03-18 11:57:59
【问题描述】:

我正在运行一个 PHP 脚本,以在 MySQL 数据库中记录对我的站点的所有请求。例如,我网站上的一些脚本还使用header("Content-Type: image/png"); 修改Content-Type 标头以输出图像。我也在尝试记录这个 Content-Type。如何获取包含 Content-Type 的字符串变量?

【问题讨论】:

  • 你的脚本是什么样的?什么时候开除?如果在每个脚本的末尾触发它,您可以使用 php 函数 headers-list de1.php.net/manual/en/function.headers-list.php 检查当前设置的标题
  • 这很好。将其发布为答案,我会投票赞成。
  • 我对其进行了编辑。我认为现在它应该被接受,对吧? ;-)
  • 当然,但我只是先检查一下。

标签: php logging http-headers


【解决方案1】:

您的脚本是什么样的?什么时候执行? 如果它在每个脚本的末尾执行,您可以使用php function headers-list检查当前设置的标题

这是一个简单的使用示例:

<?php
// headers sent
$headers = headers_list(); // get list of headers
foreach ($headers as $header) { // iterate over that list of headers
  if(stripos($header,'Content-Type') !== FALSE) { // if the current header hasthe String "Content-Type" in it
    $headerParts = explode(':',$header); // split the string, getting an array
    $headerValue = trim($headerParts[1]); // take second part as value
    $yourLoggingService->setContentTypeOfCurrentCall($headerValue);
  }
}

【讨论】:

  • if 语句中有一个错误:&gt;=0 对于striposchecks 总是返回 true。改用!== false,这就像一个魅力。
  • @Rapti 对不起,我的错。修好了。
猜你喜欢
  • 2011-07-28
  • 2011-06-21
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
相关资源
最近更新 更多