您的位置:

怎么使用php中的curl呢(php curl教程)

本文目录一览:

curl命令在PHP中怎么用

这是我项目中一直在用的一个方法

?php

function curl($url,$params = array(),$header = array(),$timeout = 180){

    if(empty($url)) return $url;

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL,$url);//请求url地址

    curl_setopt($curl, CURLOPT_HTTPHEADER , $header );  //构造IP

    

    if(!empty($params)  count($params)  0){

        curl_setopt($curl, CURLOPT_POST, true);

        

        //Request Payload格式数据

        if(isset($params['is_json'])  $params['is_json'] === true){

            unset($params['is_json']);

            $params = json_encode($params);

        }else{

            $params = http_build_query($params);

        }

        curl_setopt($curl, CURLOPT_POSTFIELDS, $params);        

    }

    //curl_setopt($curl, CURLOPT_HEADER, true);//是否返回响应头信息

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//是否将结果返回

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);//是否重定向

    //curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36');

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);   // 只信任CA颁布的证书  

    //curl_setopt($curl, CURLOPT_CAINFO, $cacert); // CA根证书(用来验证的网站证书是否是CA颁布)  

    //curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名,并且是否与提供的主机名匹配  

    // 从证书中检查SSL加密算法是否存在

    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); 

    //curl_setopt($curl, CURLOPT_HTTPHEADER, array("Expect: ")); 

    curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);//用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;

    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);//用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。

    // 自动设置Referer

    curl_setopt($curl, CURLOPT_AUTOREFERER, 1);

    //curl_setopt($curl, CURLOPT_COOKIEJAR, "D:phpStudyWWWcjcooBE66.tmp");// //写入cookie信息

    //setcookie('cookie_jar', $cookie_jar); //保存cookie路径

    $data = curl_exec($curl); //执行    

    curl_close($curl);

    return $data;

}

?

PHP如何开启curl

在安装一些PHP网站的时候,会提示要求开启curl_getinfo()函数支持功能,否则网站无法安装,在网上找了一些资料,试了好多次终于将curl_getinfo()的功能开启,下面介绍一下开启的具体过程。

工具/原料

php.ini

方法/步骤

首先打开php.ini文件,一般默认放在C盘windows目录下。

在php.ini文件夹下,查找extension=php_curl.dll,找到后,把它前面的分号去掉,让它起作用。

然后再查找extension_dir=,看看后面的地址指向哪个文件夹,然后打开这个文件夹。

从这个php5文件夹中找到libeay32.dll, ssleay32.dll,这两个文件,然后把这两个文件拷贝到c盘windows里的system32文件中。

重新启动系统就可以了,网上说只要重启iis或apcha等,但试了好像不灵,果断重启都可以了。

PHP中CURL是如何使用的

在php中可以很容易的获取某个url的内容,只要通过file_get_contents,file或者readfile函数就能轻松实现,根本不必使用cURL:

php curl的几种用法

总结一下项目中用到curl的几种方式 1. php curl的默认调用方法,get方式访问url $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}//异常 2. 设置http header支持curl访问lighttpd服务器Java代码$header[]= 'Expect:'; $header[]= 'Expect:'; 3. 设置curl,只获取http header,不获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); 或者只获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); 4. 访问虚拟主机,需设置Host $header[]= 'Host: '.$host; 5. 使用post, put, delete等REStful方式访问urlpost:curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要服务器支持这些方法。6. 保存下载内容为文件