问题如下:/usr/bin/curl: symbol lookup error: /usr/bin/curl: undefined symbol: curl_easy_header
Submitted by gouki on 2024, November 22, 3:25 PM
问题如下:/usr/bin/curl: symbol lookup error: /usr/bin/curl: undefined symbol: curl_easy_header
Submitted by gouki on 2009, February 26, 11:58 PM
http://www.cnbeta.com/articles/78036.htm
这是一条来自cnbeta的新闻,看到这个我很惊讶,确实非常的惊讶。
如果说GOOGLE是采用activex来实现,我恐怕不会惊讶,要知道foxmail等就是采用了这种方法。
但事实上,没有......
在我的猜测里,它应该是采用FLASH实现的。因为在我的想像里,好象只有FLASH才能实现这种多文件上传。
我没有看到具体的源代码,这仅仅是我的猜测,但我确实希望这不是用flash实现的,因为他的进度条,并非用flash实现。
这是一个进步。或许是我们以前的思路出了问题?
Submitted by gouki on 2008, December 3, 11:54 PM
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