手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2008年12月3日的文章

使用PHP得到所有的HTTP请求头

PHP中一般采用getallheaders来获取头部,但事实上,有些模式下是获取不到的(以前真没有注意过在fastcgi下这个函数不能用,当然我现在也没有测试。是老王说的)

他说:

在PHP里,想要得到所有的HTTP请求头,可以使用getallheaders方法,不过此方法并不是在任何环境下都存在,比如说,你使用fastcgi方式运行PHP的话,就没有这个方法,所以说我们还需要考虑别的方法,幸运的是$_SERVER里有我们想要的东西,它里面键名以HTTP_开头的就是HTTP请求头:

$headers = array();
foreach (
$_SERVER as $key => $value) {
    if (
'HTTP_' == substr($key, 0, 5)) {
       
$headers[str_replace('_', '-', substr($key, 5))] = $value;
    }
}


代码很简单,需要说明的是RFC里明确指出了信息头的名字是不区分大小写的。

不过并不是所有的HTTP请求头都是以HTTP_开头的的键的形式存在与$_SERVER里,比如说Authorization,Content-Length,Content-Type就不是这样,所以说为了取得所有的HTTP请求头,还需要加上下面这段代码:

if (isset($_SERVER['PHP_AUTH_DIGEST'])) {
    
$header['AUTHORIZATION'] = $_SERVER['PHP_AUTH_DIGEST']);
} elseif (isset(
$_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
    
$header['AUTHORIZATION'] = base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW']));
}
if (isset(
$_SERVER['CONTENT_LENGTH'])) {
    
$header['CONTENT-LENGTH'] = $_SERVER['CONTENT_LENGTH'];
}
if (isset(
$_SERVER['CONTENT_TYPE'])) {
    
$header['CONTENT-TYPE'] = $_SERVER['CONTENT_TYPE'];
}


搞定!

网址为:http://hi.baidu.com/thinkinginlamp/blog/item/c0bff01f3beb66f2e1fe0b7e.html

Tags: php, header, getallheaders

短信价格下来了

12月3日消息,据中国新闻网报道,工业和信息化部通知,长期被消费者和业界诟病的短信网间差别定价将被取消,在2009 年1月15日前基于就低不就高原则实行内外网间统一定价。届时起,移动、联通和电信三大运营商的6亿多手机用户间互发国内短信将享有统一的0.1元/条的 价格。

据工信部10月份通信统计月报数据显示,截至10月31日,中国手机用户总数为6.27亿户。目前,除了小灵通外,我国手机用户在同一家运营商的网 络内互发国内短信,费用是0.1元/条,而在不同运营商的网络间发送国内短信时,一般费用为 0.15元/条(移动神州行用户为:网内0.15元/条,网外0.2元/条),实行的是“异网异价”政策。


不过我还是觉得挺为电信惋惜的,刚刚把CDMA搞过来。就给他定下来价格一致了。连价格优势都被扼杀了。真可怜

Tags: 短信, 移动, 联通, 电信