一、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
从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