php模拟登陆系统,并执行脚本
php中的curl非常好用,可它来模拟登陆系统,并执行脚本,非常简便。下面列出自己常用的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php /** *该需要编辑cron并让其每隔5分钟自动运行一次 * 5 * * * * /usr/bin/curl http://localhost/plugin/updata.php?id=1 *其中id=?动态项目的ID号 */ $id = (isset($_GET['id']))?(int)$_GET['id']:''; if (empty($id))exit(); //登陆认证 $url = "http://localhost/login.php?work=checklogin"; $post_data = array('name'=>'username','pwd'=>'password'); $cookie_jar = tempnam('./','cookie');//存放COOKIE的文件 // 登录并获取cookie信息 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, ''); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设为1则不直接显示获取到的内容 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data)); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);//保存cookie $output = curl_exec($ch); curl_close($ch); //执行脚本运行 $url = "http://localhost/update_d.php?work=create&parent={$id}"; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //设0是为了方便调试 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);//代入获取到的cookie $data=curl_exec($ch); curl_close($ch); @unlink($cookie_jar);//删除cookie文件 ?> |
将上述代码保存为update.php文件,放在自己的网站空间里。
再将“5 * * * * /usr/bin/curl http://localhost/plugin/updata.php?id=1”代码保存为root文件,并存放在服务器/var/spool/cron/中,让cron每隔5分钟自动执行一次即可!
原创文章如转载,请注明:转载自无花果的原创博客 [ http://wuhuaguo.lifeskillcn.com ]