总结一下项目中用到curl的几种方式
-
php curl的默认调用方法,get方式访问url <pre class=php name=code>…. $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //设置http头 curl_setopt($ch, CURLOPT_ENCODING, “gzip” ); //设置为客户端支持gzip压缩 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //设置连接等待时间 curl_setopt($ch, CURLOPT_URL, $url );
curl_exec( $ch ); if ($error = curl_error($ch) ) { //出错处理 return -1; } fclose($fp);$curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //获取http返回值 if( $curl_code == 200 ) { //正常访问url } //异常 ….</pre>
-
设置http header支持curl访问lighttpd服务器
<pre class=php name=code> $header[]= ‘Expect:’; </pre>
- 设置curl,只获取http header,不获取body:
<pre class=php name=code> curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); </pre> 或者只获取body: <pre class=php name=code> curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); </pre>
- 访问虚拟主机,需设置Host
<pre class=php name=code> $header[]= ‘Host: ‘.$host;</pre>
- 使用post, put, delete等REStful方式访问url post:
<pre class=php name=code> curl_setopt($ch, CURLOPT_POST, 1 ); </pre> put, delete: <pre class=php name=code> curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “DELETE”); //或者PUT,需要服务器支持这些方法。</pre>
- 保存下载内容为文件
<pre class=php name=code> curl_setopt($ch, CURLOPT_FILE, $fp);</pre>