您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
php中的数据获取神器-curl
发布时间:2016-09-26 16:17:55编辑:雪饮阅读()
curl概念:
curl确认(是否安装):
window命令行下:php -i
在结果查询结果中查找“curl”和记事本中crtl+f一样
linux下:
php -i | grep cURL
curl使用步骤:
网页抓取php脚本:
<?php
$curl=curl_init("http://www.baidu.com");//初始化curl
curl_exec($curl);//中间人(服务员)(直接打印)
curl_close($curl);//关闭curl
?>
命令行中php文件的执行:
php -f 文件
命令行中php文件执行结果重定向于文件中:
php -f 文件 > 新文件
网页抓取并替换:
<?php
$curlobj=curl_init();//初始化
curl_setopt($curlobj,CURLOPT_URL,"http://www.baidu.com");//设置访问网页的URL
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,true);//执行之后不直接打印出来
$output=curl_exec($curlobj);//执行
curl_close($curlobj);
echo str_replace("百度","雪饮",$output);
?>
webservice(天气查询):
<?php
$data='theCityName=北京';
$curlobj=curl_init();
curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curlobj,CURLOPT_URL,"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);//执行后的返回信息不直接打印出来
curl_setopt($curlobj,CURLOPT_POST,1);//curl的post请求中允许参数传递
curl_setopt($curlobj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
$rtn=curl_exec($curlobj);//执行curl对象
if(!curl_errno($curlobj)){echo $rtn;}//如果没有curl错误就直接输出
else{echo "curl error:".curl_error($curlobj);}
curl_close($curlobj);
?>
模拟登陆:
<?php
$data='email=1509272975@qq.com&password=xy220807qwe&remember=1';
$curlobj=curl_init();
curl_setopt($curlobj,CURLOPT_URL,"http://www.imooc.com/user/login");
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);//执行后的返回信息不直接打印出来
//cookie相关设置,这部分设置需要在所有会话开始之前设置
date_default_timezone_set('PRC');//使用cookie时需要先设置时区
curl_setopt($curlobj,CURLOPT_COOKIESESSION,TRUE);//服务端cookie(即session)的支持
curl_setopt($curlobj,CURLOPT_COOKIEFILE,"cookiefile");//设置写入cookie
curl_setopt($curlobj,CURLOPT_COOKIEJAR,"cookiefile");//设置读取cookie
curl_setopt($curlobj,CURLOPT_COOKIE,session_name().'='.session_id());
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_FOLLOWLOCATION,1);//使curl支持页面跳转
curl_setopt($curlobj,CURLOPT_POST,1);
curl_setopt($curlobj,CURLOPT_POSTFIELDS,$data);//设置提交字段
curl_setopt($curlobj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
curl_exec($curlobj);//执行登陆
curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/");
curl_setopt($curlobj, CURLOPT_POST, 0);
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("Content-type: text/xml"
));
$output=curl_exec($curlobj); // 执行
curl_close($curlobj); // 关闭cURL
echo $output;
?>
ftp下载:
<?php
$curlobj=curl_init();
curl_setopt($curlobj,CURLOPT_URL,"ftp://192.168.6.102/new.txt");
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);//不直接打印
curl_setopt($curlobj,CURLOPT_TIMEOUT,300);//设置超时时间
curl_setopt($curlobj,CURLOPT_USERPWD,"xy:xy");//ftp用户名与密码
$outfile=fopen("desc.txt","wb");//保存到本地
curl_setopt($curlobj,CURLOPT_FILE,$outfile);
$rtn=curl_exec($curlobj);
fclose($outfile);
if(!curl_errno($curlobj)){
echo "RETURN:".$rtn;
}
else{
echo "curerror:".curl_error($curlobj);
}
?>
ftp上传:
<?php
$curlobj=curl_init();
$localfile="ftp01.php";
$fp=fopen($localfile,"r");
curl_setopt($curlobj,CURLOPT_URL,"ftp://192.168.6.102/new.txt");
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);//不直接打印
curl_setopt($curlobj,CURLOPT_TIMEOUT,300);//设置超时时间
curl_setopt($curlobj,CURLOPT_USERPWD,"xy:xy");//ftp用户名与密码
curl_setopt($curlobj,CURLOPT_UPLOAD,1);
curl_setopt($curlobj,CURLOPT_INFILE,$fp);
curl_setopt($curlobj,CURLOPT_INFILESIZE,filesize($localfile));
$rtn=curl_exec($curlobj);
fclose($fp);
if(!curl_errno($curlobj)){
echo "upload success";
}
else{
echo "curerror:".curl_error($curlobj);
}
?>
获取https:
<?php
$curlobj=curl_init();
curl_setopt($curlobj,CURLOPT_URL,"https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js");
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,true);//不直接打印
//设置https支持
date_default_timezone_set("PRC");//使用cookie就必须先设置时区,https与cookie相关
curl_setopt($curlobj,CURLOPT_SSL_VERIFYPEER,0);//终止从服务器端进行验证
$output=curl_exec($curlobj);
curl_close($curlobj);
echo $output;
?>
关键字词:
相关文章
-
无相关信息