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

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

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

php は、curl を使用して Renren にログインして更新を公開する方法を模倣します。curl Renren

この記事の例では、PHP が Curl を使用して Renren へのログインを模倣し、更新を公開する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです

PHP でログインを模倣するというと、多くの人はすぐにcurl 関数シリーズを思い浮かべるでしょう。その通りです。この例でも、curl を使用してログインを模倣し、動的パブリッシングを実行するだけです。 Renren のログイン情報を入力し、curl post を使用してログイン データをアップロードするだけです。

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

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

$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 "正常に公開されました!";
}その他{
エコー「クソ!!!」;
}

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

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

PHP CURL POST のシミュレートされたユーザー ログインを具体的なコードと簡単に説明していただければ幸いです

リファラーとユーザーエージェントがブラウザの値をシミュレートできるかどうかなど、シミュレートされていない他の http ヘッダーがあるかどうかを確認できます。 完全なリクエストは次のようになります。
GET /home/pack/data/content id? =31,2399,13,30&asyn=1&t=0.03439752989200834&_req_seqid=0xa982225f0637c78a HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Referer: www.baidu.com/
x-re requested -with: XMLHttpRequest
Accept-Encoding: gzip、deflate
User-Agent: Mozilla/4.0 (互換性; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS123401; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; MS-RTC LM 8)
ホスト: www.baidu.com
接続: キープアライブ
Cookie: XCXXXXX

php100 コードに従っているのに、この php cURL でログインをシミュレートできないのはなぜですか?

$post_fields = 'cktime=31536000&step=2&pwuser=Account&pwpwd=Password'; アカウントのパスワードを自分のものに変更してみてください。試してみましたが、うまくいきました

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/907836.html技術記事 PHP は、curl を使用して、Renren にログインして更新を公開する方法を模倣します。 Curl Renren この記事では、PHP で、curl を使用して、Renren にログインして更新を公開する方法を模倣する例について説明します。参考のためにみんなで共有してください。ツール...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。