重用一个CURL句柄时, 发现curl_setopt($ch, CURLOPT_HTTPGET, TRUE) 不起作用. 期望在调用这条语句之后发起请求, 应该发送的是GET, 但看服务器log, 却使用了和前一次请求相同的HTTP方法.
PHP脚本:
<?php
$url = 'http://www.ideawu.net/';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_exec($ch);
curl_setopt($ch, CURLOPT_HTTPGET, true); // 错误! BUG
curl_exec($ch);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); // 正确
curl_exec($ch);
?>
web server log:
124.127.130.50 "2011-10-12 18:55:09" "POST / HTTP/1.1" 200 3516 "-" www.ideawu.net
124.127.130.50 "2011-10-12 18:55:09" "POST / HTTP/1.1" 200 3516 "-" www.ideawu.net
124.127.130.50 "2011-10-12 18:55:09" "GET / HTTP/1.1" 200 3516 "-" www.ideawu.net
这个BUG目前还没找到相关的资料.
补充: 不仅仅是CURLOPT_HTTPGET, CURLOPT_POST也有同样的问题. 所以, 结论是: 只有CURLOPT_CUSTOMREQUEST才是正确的方法.
Written by ideawu
at 2011-10-12 18:55:51
做个笔记:
SHELL循环:
1. while
i=0; while [ $i -lt 10 ]; do echo $i; i=$(($i+1)); done
2. for
for ((i=1; i<=10; i++)); do echo $i; done
3. while
cat file.txt | while read line; do echo $line; done
while read line; do echo $line; done < file.txt
Written by ideawu
at 2011-09-30 12:14:11
为了应对亚太地区快速增长的需求, Linode 开始把机房建在亚洲了! 第一个 Linode 亚洲机房选择在日本东京.
我测了下, 速度比原来在美国加州快多了, 应该主要得益于网络延时的减少. 所以, 我立即开了张 Support Ticket 将我的 VPS 迁到了日本. 迁完之后, 访问速度飞快! 和原来在国内某机房没有感觉上的区别.
大家可以反馈下你访问的速度是否有提升?
注: Linode VPS 是完整的 VPS, 一年的费用在人民币一千五左右, 可以月付, 建议选择年付(可优惠10%). 看看去…
Written by ideawu
at 2011-09-28 00:18:54
你可能会觉得PHP中将浮点数(float)转成字符串非常简单, 但是, 常用的方法隐藏着严重的bug. 因为, PHP在处理浮点数时有非常不合理的做法, 会有精度丢失. 经研究, 其实是PHP在显示浮点数时的问题, 也可以说是BUG. PHP内置的echo, var_dump, json_encode, 字符串拼接等函数(指令)在显示浮点数时都有问题, 导致精度丢失.
<?php
$a = 1315537636.338467;
printf("%f", $a); echo "\n";
echo $a . "\n";
echo $a; echo "\n";
结果
1315537636.338467
1315537636.3385
1315537636.3385
也就是说, 用PHP最顺手的方法将浮点数转成字符串或者显示是不行的, 必须使用printf/sprintf将浮点数转成字符串.
Written by ideawu
at 2011-09-09 11:33:47
虽然用vhost可以支持子域名, 但不方便.
RewriteCond $1 !^bbs/
RewriteCond %{HTTP_HOST} bbs.example.com
RewriteRule (.*) /bbs/$1 [L]
RewriteCond $1 !^bbs/ 避免内部无限redirect.
Continue reading »
Written by ideawu
at 2011-09-04 22:26:02 | tags: Apache

最近, 两大知名的社交游戏厂商, Zynga 和 Digital Chocolate 开始建造自己的服务器硬件环境(IDC)了. 之前, 这两家公司完全使用的是 Amazon 的 AWS 云计算服务. 也就是说, 虽然他们从创业到发展壮大, 却从来不知道也不用关心自己所用的服务器和机房是什么样子. 但是, 现在他们开始控制这部分的内容了, 比如Zynga 建造自己了云计算环境.
这似乎就是云计算服务的作用, 它可以帮助你创业时减少支基础计算能力的考虑, 关注于自己的服务更好的服务于用户. 但一旦发展壮大, 就要把云给踢开了.
不过, 在中国创业初期连这个选择都没有, 必须一开始就要被服务器购买, IDC 机架位租用, 操作系统和软件(如 LAMP)安装等烦恼, 更困难的还是在与管理部门打交道, 耗费大量精力.
Written by ideawu
at 2011-08-07 20:57:17
Recent Comments