自动调用typecho文章 RSS,随机推送到hostloc签名.
自动调用typecho文章 RSS,随机推送到hostloc签名.
crond或者宝塔定时任务执行即可。
代码稀烂,能凑合用。
源码下载:hostloc_typecho.zip
效果如下:
<?php
error_reporting(0);
$username = "用户名";
$password = "密码";
set_time_limit(600);
$suburl = "https://hostloc.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1";
$loginInfo = array(
"username" => $username,
"password" => $password,
"fastloginfield" => "username",
"quickforward" => "yes",
"handlekey" => "ls",
"loginsubmit" => true
);
$login = postData($suburl,$loginInfo);
$signatureUrl = "https://hostloc.com/home.php?mod=spacecp&ac=profile&op=info";
$signaturef = getData($signatureUrl);
preg_match('/input type=\\"hidden\\" name=\\"formhash\\" value=\\"(.*?)" /',$signaturef ,$match);
$formhash = $match[1];
$a = Fpost('http://www.185186.xyz/feed/','');
$obj = simplexml_load_string($a,"SimpleXMLElement", LIBXML_NOCDATA);
$arr = json_decode(json_encode($obj),true);
$arr2 =$arr[channel][item];
$signature = array();
foreach($arr2 as $key => $value){
$signature[$key]='[table=98%,Purple][tr][td][b][url='.$value[link].'][color=White][size=5][font=微软雅黑][align=center] '.$value[title].'[/align][/url][/font][/size][/b][/td][/tr][/color][/table]';
}
$rndKey = array_rand($signature);
$signatureone = $signature[$rndKey];
$signatureInfo = array(
"sightml" => $signatureone,
"profilesubmit" => true,
"formhash" => $formhash,
"profilesubmitbtn" => true
);
$signature = postDataC($signatureUrl,$signatureInfo);
print($signature);
function postData($url, $post_data)
{
$ch = curl_init ();
curl_setopt($ch , CURLOPT_POST , 1);
curl_setopt($ch , CURLOPT_HEADER , 0);
curl_setopt($ch , CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36');
curl_setopt($ch , CURLOPT_COOKIEJAR , 'hostloc.cookie');
curl_setopt($ch , CURLOPT_POSTFIELDS , $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,600);
curl_setopt($ch, CURLOPT_REFERER, 'https://www.hostloc.com/');
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function postDataC($url, $post_data)
{
$ch = curl_init ();
curl_setopt($ch , CURLOPT_POST , 1);
curl_setopt($ch , CURLOPT_HEADER , 0);
curl_setopt($ch , CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'hostloc.cookie');
curl_setopt($ch , CURLOPT_POSTFIELDS , http_build_query($post_data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,600);
curl_setopt($ch, CURLOPT_REFERER, 'https://hostloc.com/home.php?mod=spacecp&ac=profile&op=info');
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function getData($url)
{
$ch = curl_init ();
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'hostloc.cookie');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,600);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function Fpost($url)
{
$ch = curl_init ();
curl_setopt($ch , CURLOPT_POST , 1);
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,600);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
?>