ホームページ  >  記事  >  バックエンド開発  >  PHP CURL は新浪微博へのログインをシミュレートし、ページのコンテンツをキャプチャします EaglePHP フレームワーク_PHP チュートリアルに基づいて開発されました

PHP CURL は新浪微博へのログインをシミュレートし、ページのコンテンツをキャプチャします EaglePHP フレームワーク_PHP チュートリアルに基づいて開発されました

WBOY
WBOYオリジナル
2016-07-21 15:21:18993ブラウズ

复制代码代码如下:

/**
* CURL リクエスト
* @param String $url リクエストアドレス
* @param Array $data リクエストデータ
*/
functioncurlRequest($url,$data='',$cookieFile=''){
$ch =curl_init();
$option = array(
CURLOPT_URL => $url,
CURLOPT_HEADER =>0,
CURLOPT_RETURNTRANSFER => 1,
);
if($cookieFile){
$option[CURLOPT_COOKIEJAR] = $cookieFile;
$オプション[CURLOPT_COOKIEFILE] = $cookieFile;
//$option[CURLOPT_COOKIESESSION] = true;
//$option[CURLOPT_COOKIE] = 'prov=42;city=1';
}
if($data){
$option[CURLOPT_POST] = 1;
$オプション[CURLOPT_POSTFIELDS] = $データ;
}
curl_setopt_array($ch,$option);
$response =curl_exec($ch);
if(curl_errno($ch) > 0){
throw_Exception("CURL ERROR:$url ".curl_error($ch));
}
curl_close($ch);
$response を返す;
}
関数login($username,$password){
if($username && $password){
$preLoginData =curlRequest('http://login.sina.com.cn/sso/prelogin.php?entry= weibo&callback=sinaSSOController.preloginCallBack&su='.base64_encode($username).'&client=ssologin.js(v1.3.16)','',self::COOKIE_FILE);
preg_match('/sinaSSOController.preloginCallBack((.*))/',$preLoginData,$preArr);
$jsonArr = json_decode($preArr[1],true);
if(is_array($jsonArr)){
$postArr = array(
'entry' => 'weibo',
'gateway' => 1,
'from' => '',
'savestate' => 7,
'useticket' => 1,
'su' => 'base64_encode($username)',
'サーバータイム' => $jsonArr['サーバータイム'],
'ノンス' => $jsonArr['ノンス'],
'pwencode' => 'wsse',
'sp' => sha1(sha1($password)).$jsonArr['servertime'].$jsonArr['nonce']),
'encoding' => 'UTF-8',
'url' => /weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',
'returntype' => 'META'
);
$loginData =curlRequest('http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.16)',$postArr,self::COOKIE_FILE);
if($loginData){
$matchs = array();
preg_match('/replace('(.*?)')/',$loginData,$matchs);
$loginResult =curlRequest($matchs[1],'',self::COOKIE_FILE);
$loginResultArr = array();
preg_match('/feedBackUrlCallBack((.*?))/',$loginResult,$loginResultArr);
//$userInfo = json_decode($loginResultArr[1],true);
//Log::info(var_export($loginResultArr[1]));
}else{
throw_Exception('ログインに失敗しました。');
}
}else{
throw_Exception($preLoginData);
}
}else{
throw_Exception('パラメータエラー。');
}
}


http://www.bkjia.com/PHPjc/324927.html

tru​​ehttp://www.bkjia.com/PHPjc/324927.html技術記事复制代码代码如下: /*** CURL リクエスト * @param String $url リクエスト アドレス * @param Array $data リクエスト データ*/ functioncurlRequest($url,$data='',$cookieFile=''){ $ch =curl_in...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。