11
2014
01

win7 64位 php环境开启curl服务

 window7中PHP环境没开启CURL扩展时,使用CURL_INIT函数会提示 Call to undefined function curl_init()

解决方法:

要启用curl一般打开php.ini,找到“extension=php_curl.dll”,然后去掉前面的“;”注释,重启apache即可。

  如果还出现Call to undefined function curl_init()问题,先检查php.ini的extension_dir值是哪个目录,在那个目录下检查有无php...

21
2012
12

解决PHP使用CURL请求时返回http/1.1 100 continue的方法

在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,

  1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据
  2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server
  

这是libcurl的行为.

具体的RFC相关描述: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3

于是,这样就有了一个问题, 并不是所有的Server都会正确应答100-continue, 比如lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错,,

要解决的办法也挺容易:

 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
               // Disable Expect: header (lighttpd does not support it)