php通过curl函数取得数据、模拟登陆、POST数据
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-12 14:19:04 浏览: 评论:0
在php中我们如果要取得数据、模拟登陆、POST数据等功能第一个想到的肯定是curl函数了,这个函数方便实用并且还可以多线程了下面整理了一个例子,有兴趣的朋友可参考.
例子,使用php curl获取网页数据的方法,代码如下:
- $ch=curl_init();
- //设置选项,包括URL
- curl_setopt($ch,CURLOPT_URL,"http://www.phpfensi.com");
- curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
- curl_setopt($ch,CURLOPT_HEADER,0);
- //执行并获取HTML文档内容
- $output=curl_exec($ch);
- //释放curl句柄
- curl_close($ch);
使用php curl post提交数据的方法,代码如下:
- $url="http://www.phpfensi.com/curl_post.php";
- $post_data=array (
- "nameuser"=>"syxrrrr",
- "pw"=>"123456"
- );
- $ch=curl_init();
- curl_setopt($ch,CURLOPT_URL,$url);
- curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
- curl_setopt($ch,CURLOPT_POST,1);
- curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
- $output=curl_exec($ch);
- curl_close($ch);
- echo $output;
取得数据、模拟登陆、POST数据,代码如下:
- /********************** curl 系列 ***********************/
- //直接通过curl方式取得数据(包含POST、HEADER等)
- /*
- * $url: 如果非数组,则为http;如是数组,则为https
- * $header: 头文件
- * $post: post方式提交 array形式
- * $cookies: 0默认无cookie,1为设置,2为获取
- */
- public function curl_allinfo($urls, $header = FALSE, $post = FALSE, $cookies = 0) {
- $url = is_array($urls) ? $urls['0'] : $urls;
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- //带header方式提交
- if($header != FALSE){
- curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
- }
- //post提交方式
- if($post != FALSE){
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
- }
- if($cookies == 1){
- curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
- }else if($cookies == 2){
- curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
- }
- if(is_array($urls)){
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- }
- $data = curl_exec($ch);
- curl_close($ch);
- return $data;
- }
最后附一个模仿搜索引擎蜘蛛来抓取网页,代码如下:
- function get_web_page( $url )
- {
- $options = array(
- CURLOPT_RETURNTRANSFER => true, // return web page 返回网页
- CURLOPT_HEADER => false, // 不返回头信息
- CURLOPT_FOLLOWLOCATION => true, // follow redirects
- CURLOPT_ENCODING => "", // handle all encodings
- CURLOPT_USERAGENT => "spider", // 设置UserAgent
- CURLOPT_AUTOREFERER => true, // set referer on redirect
- CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect 连接超时
- CURLOPT_TIMEOUT => 120, // timeout on response 回复超时
- CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
- );
- $ch = curl_init( $url );
- curl_setopt_array( $ch, $options );
- $content = curl_exec( $ch );
- $err = curl_errno( $ch );
- $errmsg = curl_error( $ch );
- $header = curl_getinfo( $ch );
- curl_close( $ch );
- $header[''errno''] = $err;
- $header[''errmsg''] = $errmsg;
- $header[''content''] = $content;
- return $header;
- }
Tags: curl函数 curl模拟登陆 POST数据
相关文章
- ·php curl函数采集网页出现乱码问题解决方法(2014-09-21)
- ·win7(X64)系统环境PHP Curl函数不能使用(2014-09-21)
- ·php curl函数采集网页程序代码(2015-04-11)
- ·php通过curl模拟登陆DZ论坛(2021-05-26)
- ·php模拟用户发送post数据方法(2014-08-01)
- ·php fsockopen post数据发送实例(2014-09-19)
- ·php ajax数据提交post与post常见方法(2014-09-21)
- ·php5.3.9中post数据不完整问题解决(2014-09-21)
- ·PHP基于CURL进行POST数据上传实例(2021-04-25)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)