PHP传输神器cURL

一、cURL的概念

cURL (Client URL Library Functions) 由Daniel Stenbery创建。官方定义为:curl is a command line tool for transferring data with URL syntax,即使用URL语法传输数据的命令行工具。(请求资源、返回资源)


二、在PHP中使用cURL的三个步骤

1、初始化cURL:curl_init();

2、向服务器发送请求、接收服务器数据:curl_exec();

3、关闭cURL:curl_close();


三、制作一个简单的爬虫抓取百度首页

$curl = curl_init("http://www.baidu.com");
curl_exec($curl);
curl_close($curl);
echo str_repalce("baidu", "百度", $outputfile);   //将爬到的网页文件中的百度替换成baidu

四、扩展

curl_setopt();    //设置临时参数

curl_errorno();  //如果没有错误if(!curl_errorno($curl)) 

curl_error();   //错误信息 curl_error($curl)


五、curl_setopt()中的一些常用常量

curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");  //访问网页的url

curl_setopt($curlobj, CURLOPT_HEAD, 0);       //不要头信息

curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);       //执行之后不直接打印出来

curl_setopt($curlobj, CURLOPT_POST, 1);       //设置为POST方式

curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);       //POST方式所传输的数据,如果有多个参数:$data = 'username=xp&password=123456'

curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urldecode;charset=utf-8", "Content-length: ".strlen($data)));       //设置http头信息

如果需要登录:($data = 'username=xp&password=123456')

curl_setopt($curlobj, CURLOPT_COOKIESESSION, true);       //设置curl支持cookie和session  注意要设置时区 date_default_timezone_set(‘PRC’);
curl_setopt($curlobj, CURLOPT_COOKIEFILE, "http://www.baidu.com");  //保存COOKIE的文件
curl_setopt($curlobj, CURLOPT_COOKIEJAR, 1);       //设置cookie的jar

curl_setopt($curlobj, CURLOPT_COOKIE, session_name().'='.session_id()); //设置cookie的name和id 

从ftp服务器上上传和下载文件本地:

下载:

curl_setopt($curlobj, CURLOPT_TIMEOUT, 300);       //设置下载时间不能超过300s
curl_setopt($curlobj, CURLOPT_USERPWD, "xp:123456");  //设置ftp账号密码

curl_setopt($curlobj, CURLOPT_FILE, $outfilename);       //下载的文件

上传:

curl_setopt($curlobj, CURLOPT_UPLOAD, 1);   //定义上传
curl_setopt($curlobj, CURLOPT_INFILE, $fp );  //设置上传的文件  上传的文件必须是打开状态 $fp = fopen($localfile, 'r'); 下载时(文件保存在本地的名称,写入状态): fopen($fsavename, 'wb');
curl_setopt($curlobj, CURLOPT_INFILESIZE, file($localfile));       //定义上传文件大小
$data = 'username=xp&password=123456'


https:

curl_setopt($curlobj, CURLOPT_SSL_VERIFTYPEER, 0);       //终止服务端进行验证  注意:https也有时效性验证,需要设置时区


六、官方文档

http://www.php.net/manual/zh/book.curl.php


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值