Curl模拟提交数据
php curl实现模拟登陆,并获取登陆页的信息。
<?php /** * -------------------------------- * Curl模拟登陆操作 * -------------------------------- * @author Corwien * @version 2017-01 * -------------------------------- */ //模拟登录 function login_post($url, $cookie, $post) { $curl = curl_init();//初始化curl模块 curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息 curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中 curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息 curl_exec($curl);//执行cURL curl_close($curl);//关闭cURL资源,并且释放系统资源 } // 登录成功后获取数据 function get_content($url, $cookie) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 也可以copy cookie用curl_setopt($curl, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //读取cookie $rs = curl_exec($ch); //执行cURL抓取页面内容 curl_close($ch); return $rs; } // 登录成功后模拟发帖 function post_thread($url, $cookie, $post) { $curl = curl_init();//初始化curl模块 curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息 curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); //读取cookie curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息 curl_exec($curl);//执行cURL curl_close($curl);//关闭cURL资源,并且释放系统资源 } //设置post的数据 $post = array ( 'user_id' => '[email protected]', 'password' => '123456', 'goto_page' => 'http://m.app.cn/index.php', 'act' => 'login', 't' => time(), ); //登录地址 $url = "http://m.app.cn/account/login.php"; //设置cookie保存路径 $cookie = dirname(__FILE__) . '/cookie_curl.txt'; //登录后要获取信息的地址 $url2 = "http://m.app.cn/user/wap/my_index.php"; // 1.模拟登录 login_post($url, $cookie, $post); // 2.获取登录页的信息 // $content = get_content($url2, $cookie); //匹配页面信息 // $preg = "/<td class='portrait'>(.*)<\/td>/i"; // preg_match_all($preg, $content, $arr); // $str = $arr[1][0]; //输出内容 // echo $content; // 3.模拟发帖 $thread_info = array( 'action' => 'pub', 'title' => 'Test curl', 'content' => 'Hello, world.', 't' => time(), ); $pub_thread_url = 'http://m.app.cn/thread/api/pub_thread.php'; $ret = post_thread($pub_thread_url, $cookie, $thread_info); print_r($ret); //删除cookie文件 @ unlink($cookie); ?>
相关推荐
CyborgLin 2020-08-15
Blueberry 2020-08-15
阳光岛主 2020-06-25
83911535 2020-11-13
曾是土木人 2020-10-31
yegen00 2020-10-21
soralaro 2020-10-11
katanaFlower 2020-09-18
wytzsjzly 2020-08-17
88407710 2020-08-17
ChinaJoeEE 2020-08-16
PinkBean 2020-08-11
katanaFlower 2020-08-03
hunningtu 2020-07-30
阿债的方寸天地 2020-06-28
pingyan 2020-06-25
wytzsjzly 2020-06-25
阿债的方寸天地 2020-06-16