2015-07-19 2,011 ℃
依旧是1年前放在百度空间上的代码,用的是虾米音乐的wap端口签到,话说这签到代码我用了至少2年了,虾米也一直没变过。。。
其实有了网易云音乐后已经没用过虾米了,不过签到一直有挂在服务器上,现在已经签了900多天了。。。
<?php
/*
*虾米音乐签到
*在代码里填上你的用户名和密码~
*By Perfare(www.perfare.net)
*update 2014-3-23
*/
header("content-Type: text/html; charset=utf-8");
function curl_get($url, $use = false, $save = false, $referer = null, $post_data = null){
global $cookie_file;
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; MI-ONE Plus Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//需要使用cookies
if($use){
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
}
//需要保存cookies
if($save){
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
}
//需要referer伪装
if(isset($referer))
curl_setopt($ch, CURLOPT_REFERER, $referer);
//需要post数据
if(is_array($post_data)) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
}
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
//签到代码
$user = '这里填上你的用户名';//用户名
$pwd = '这里填上你的密码';//密码
//登录地址
$loginUrl = 'http://www.xiami.com/web/login';
//签到页面的地址
$signPageUrl = 'http://www.xiami.com/web';
//存放Cookies的文件
$cookie_file = tempnam('./temp','cookie');
//设置登录需要提交的数据
$login_array=array(
'email'=>$user,
'password'=>$pwd,
'LoginButton'=>'登录',
);
//直接提交数据(如果要验证码也没办法了)
$res = curl_get($loginUrl, false, true, null, $login_array);
//访问签到页面
$res = curl_get($signPageUrl, true, true);
//判断今天是否已经签过到
if(strpos($res, '已连续签到')){
preg_match('/<div class="idh">(.+)<\/div>/i' , $res , $matches);
$continueDays = ','.$matches[1];
$resultStr = "今天已签过到".$continueDays;
}
else if(strpos($res, '每日签到')){
//构造提交签到信息的URL
//用正则获取check_in
preg_match('/<a class="check_in" href="(.+)">每日签到<\/a>/i' , $res , $matches);
$signUrl = 'http://www.xiami.com'.$matches[1];
//提交签到请求
$res = curl_get($signUrl, true, true, 'http://www.xiami.com/web');
//判断是否签到成功(再次访问主页)
$res = curl_get($signPageUrl, true, true);
if(strpos($res, '已连续签到')){
preg_match('/<div class="idh">(.+)<\/div>/i' , $res , $matches);
$continueDays = ','.$matches[1];
$resultStr = "签到成功".$continueDays;
}
else
$resultStr = '签到失败';
}
else
$resultStr = '登录失败,可能是需要验证码';
echo $resultStr;
unlink($cookie_file);//删除cookie文件
?>