ホームページ >バックエンド開発 >PHPチュートリアル >PHP は、curl を使用して Renren にログインして更新を公開する方法を模倣します_PHP チュートリアル

PHP は、curl を使用して Renren にログインして更新を公開する方法を模倣します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:14:48798ブラウズ

phpは、Renren.comのログインメソッドを真似て更新を公開するためにcurlを使用します

phpでログインを真似するとなると、多くの人はcurl関数シリーズを真っ先に思い浮かべるでしょう。これも正しいです。原理は、Renren.com のログイン情報を取得し、curl post を通じてログイン データをアップロードするだけです。

具体的なコードは次のとおりです:

コードは次のとおりです:
$rconfig = pdo_fetch("SELECT * FROM ".tablename("eduTwo_renren")." WHERE weid = :weid",array(':weid'=>$_W['weid']));

$cookie_file = dirname(__FILE__)."/renren.cookie";
$login_url = 'http://passport.renren.com/PLogin.do';
$post_fields['電子メール'] = $rconfig['ユーザー名'];
$post_fields['パスワード'] = $rconfig['rパスワード'];
$post_fields['origURL'] = 'http%3A%2F%2Fhome.renren.com%2FHome.do';
$post_fields['ドメイン'] = 'renren.com';

$ch =curl_init($login_url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
$content =curl_exec($ch);
$info =curl_getinfo($ch);
curl_close($ch);
//var_dump($info);終了;
//ユーザーのIDと一致します
$send_url='http://www.renren.com/home';
$ch =curl_init($send_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_exec($ch);
$info =curl_getinfo($ch);
curl_close($ch);

//$uid = "305115027";
//トークンとrtkを取得します
$send_url=$info['redirect_url'];
$ch =curl_init($send_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$tmp =curl_exec($ch);
curl_close($ch);
preg_match_all("/get_check:'(.*?)',get_check_x:'(.*?)',/is",$tmp,$arr);
preg_match_all("/'ruid':'(.*?)',/is",$tmp,$utmp);
//var_dump($utmp);終了;
$token = $arr[1][0];//1121558104
$rtk = $arr[2][0];//e9a9cb2
$uid = $utmp[1][0];
//エコー $token;終了;
//情報を公開します
$poststr['content'] = $_GPC['content'].$rconfig['tail'];
$poststr['withInfo'] = '{"wpath":[]}';
$poststr['hostid:'] = $uid;
$poststr['privacyParams'] = '{"sourceControl": 99}';
$poststr['requestToken'] = $token;
$poststr['_rtk'] = $rtk;
$poststr['チャンネル'] = "レンレン";
$head = 配列(
'リファラー:http://shell.renren.com/ajaxproxy.htm',
'X-Requested-With:XMLHttpRequest',
);
$ch =curl_init("http://shell.renren.com/{$uid}/status");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');
curl_setopt($ch,CURLOPT_HTTPHEADER,$head);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$content =curl_exec($ch);
curl_close($ch);
//エコー $content;終了;
$data = json_decode($content,true);
if($data["コード"] == "0"){
echo "正常に公開されました!";
}その他{
エコー「クソ!!!」;
}

最終的にリリースは成功しました。もちろん、リリースする情報として、以前のデータベースも自分で作成する必要があります。データを記録するだけです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/907712.html技術記事 PHP は、更新情報を投稿するために、curl を使用して Renren.com でログインをシミュレートします。PHP でのシミュレートされたログインというと、多くの人はすぐに、curl 関数シリーズを思い浮かべるでしょう。そうです。この例でも、curl を使用してログインをシミュレートします。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。