PHP中的curl函数

来源:互联网 发布:大数据的工资待遇 编辑:程序博客网 时间:2024/06/05 16:07

一.用cURL制作一个简单的网页爬虫

$curl=curl_init('http://www.baidu.com');curl_exec($curl);curl_close($curl);
$curlobj = curl_init();            // 初始化curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");        // 需要获取的 URL 地址,也可以在curl_init() 初始化会话的时候。curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);           // 将curl_exec()获取的信息以字符串返回,而不是直接输出$output=curl_exec($curlobj);  // 执行curl_close($curlobj);          // 关闭cURLecho str_replace("百度","屌丝",$output);

1.curl_init ([ string $url = NULL ] )
作用:初始化一个新的会话,返回一个cURL句柄
供curl_setopt(), curl_exec()和curl_close() 函数使用
参数:url:如果提供了该参数,CURLOPT_URL 选项将会被设置成这个值。你也可以使用curl_setopt()函数手动地设置这个值。
返回值:如果成功,返回一个cURL句柄,出错返回 FALSE。

2.curl_exec ( resource $ch )
作用:执行给定的cURL会话。这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用
参数:ch由 curl_init() 返回的 cURL 句柄。
返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。
然而,如果 CURLOPT_RETURNTRANSFER选项被设置,函数执行成功时会返回执行的结果,失败时返回 FALSE

3.cur_close ( resource $mh )
作用:关闭一个cURL会话并且释放所有资源。cURL句柄ch 也会被释放
参数: ch由 curl_init() 返回的 cURL 句柄
返回值:没有返回值.

二.用cURL调用WebService获取天气信息

header("Content-type: text/html; charset=utf-8");define('AppKey','自己申请的appkey值');$cityname='北京';$url='http://v.juhe.cn/weather/index?format=2&cityname='.$cityname.'&key='.AppKey;$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);$out=curl_exec($ch);curl_close($ch);$out =json_decode($out,true);echo '<pre>';print_r($out);echo '</pre>';

三.用cURL登录慕课网并下载个人空间页面

四.用cURL从FTP服务器上下载文件到本地

$curlobj = curl_init();    curl_setopt($curlobj, CURLOPT_URL, "ftp://192.168.10.1/1.jpg");  curl_setopt($curlobj, CURLOPT_HEADER, 0); curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);  //允许 cURL 函数执行的最长秒数。 curl_setopt($curlobj, CURLOPT_TIMEOUT, 300); //FTP用户名:密码//curl_setopt($curlobj, CURLOPT_USERPWD, "admin:123456");//保存到本地的文件名$outfile = fopen('zhangsan.jpg', 'wb');//设置输出文件(资源流),默认为STDOUT (浏览器)curl_setopt($curlobj, CURLOPT_FILE, $outfile);$rtn = curl_exec($curlobj);  fclose($outfile); if(!curl_errno($curlobj)){    echo "RETURN: " . $rtn;  } else {  echo 'Curl error: ' . curl_error($curlobj);}curl_close($curlobj);

五.用cURL从本地上传文件到FTP

$curlobj = curl_init();$localfile = 'zhang3.php';$fp = fopen($localfile,'r');curl_setopt($curlobj,CURLOPT_URL,'ftp://192.168.10.1/li3.php');curl_setopt($curlobj,CURLOPT_HEADER,0);curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);curl_setopt($curlobj,CURLOPT_TIMEOUT,300);//curl_setopt($curlobj, CURLOPT_USERPWD, "admin:");curl_setopt($curlobj,CURLOPT_UPLOAD,true);//上传文件时需要读取的文件curl_setopt($curlobj,CURLOPT_INFILE,$fp);//希望传给远程站点的文件尺寸curl_setopt($curlobj,CURLOPT_INFILESIZE,filesize($localfile));$rtn = curl_exec($curlobj);fclose($fp);if(!curl_errno($curlobj)){    echo 'Uploader successfully';}else{    echo 'Curl error: '.curl_error($curlobj);    echo 'Curl errno: '.curl_errno($curlobj);}curl_close($curlobj);

六.用cURL访问HTTPS资源

$curlobj = curl_init();            // 初始化curl_setopt($curlobj, CURLOPT_URL, "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js");       // 设置访问网页的URLcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);           // 执行之后不直接打印出来// 设置HTTPS支持date_default_timezone_set('PRC'); // 使用Cookie时,必须先设置时区curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查从证书中检查SSL加密算法是否存在curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, 2); // $output=curl_exec($curlobj);  // 执行curl_close($curlobj);          // 关闭cURLecho $output;
0 0
原创粉丝点击