ユーザーが QQ スペースに記事を自動的に公開する方法を PHP でシミュレートします ここでは、PHP を使用してログインと QQ スペースへの記事の送信をシミュレートする簡単なプログラムを示します。必要な友達はそれを参照したり、改良したりできます。ご意見をいただけますか? コードは次のとおりです: [php] view plaincopy //取得をシミュレートする投稿リクエスト関数 http://www.lai18.com /* 機能の説明: 機能: リクエスト メソッドは、取得、投稿、送信可能な Cookie、および保存された Cookie ファイルを使用できます パラメータ: $url-----リクエスト URL $referer---ソース URL $ postdata- --------投稿リクエストに使用されるデータ、取得リクエストの '' $cookie--------送信済み cookie $cookiefile-----保存済み cookiefile 戻り値: 取得したソースコードを返す */ request($url, $referer=''、$postdata=''、$cookie='' ,$cookiefile=''){ //ヘッダー設定 $header=''; $header.="Content-Type: application/x-www -form-urlencodedrn"; //コンテンツリクエストタイプ $header.="ユーザーエージェント: Mozilla/4.0 (互換性; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; . NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;rn";//ブラウザフィールド $header.="リファラー:" .$referer."rn";//送信元アドレスを設定します $header .= "Cookie:".$cookie//Cookie を設定します。デフォルトでは空です //リクエストメソッド get post, pass $postdata empty---get,空でない----post if($postdata=='' )$method='GET'; else $method='POST'; //ストリームの作成に使用する配列を定義します $opts=array(); $opts['http']=array('メソッド'=> $method,'header'=>$header,'content' =>$postdata); > //ストリームを生成 $context=stream_context_create($opts ); // リクエストを送信し、ソースを取得コード ($url,false,$context); 🎜> // $cookiefile が空でない場合、Cookie をファイルに保存する必要があるかどうか if($cookiefile!=''){ エコー '必要Cookie を保存する'; >//保存されたファイルが存在するかどうかを判断し、存在しない場合は作成します if(!file_exists($cookiefile)){ file_put_contents($cookiefile,'' ); } //Cookie を取得して保存します $response=implode("rn",$http_response_header); // 通常のマッチング Cookie を使用する $zengze="/Set-Cookie : (.*?)rn/"; preg_match_all ($zengze、$response、$cookie_arr); 🎜>//一致するものがあり、保存します if (!emptyempty($cookie_arr[1])){ $cookiestr=implode(';',$cookie_arr[1]); file_put_contents($cookiefile, $cookiestr); 'Cookie が正常に保存されました'; } >else echo '一致する Cookie がありません' }//end if($cookiefile!='') //ソースコードに戻る return $yuanma 🎜> }//関数リクエストの終了($url,$referer,$postdata,$cookie,$cookiefile) // 現在のスクリプト URL を取得します 関数 GetCurUrl() { if(!emptyempty($_SERVER["REQUEST_URI"])) 🎜> $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; 🎜> else >{ $scriptName = $_SERVER["PHP_SELF" ]; if(emptyempty($_SERVER["QUERY_STRING" ])) { = $scriptName; else { $nowurl = $scriptName ."?".$_SERVER[ "QUERY_STRING"] 🎜> > } return $nowurl ; } >//現在のファイル名を取得します $nowurl=GetCurUrl (); 🎜> //echo $nowurl; > 🎜>//送信されていない場合のフォーム出力 if (!isset($_POST['qq'])){ echo '.$nowurl .'"> qq番号:"テキスト" 名前="qq">> br> g_tk:"text" name= "g_tk"> タイトル: " text" name="title"> 🎜>Content:"テキスト" name="コンテンツ"> "submit" value="記事を公開" > > 死ね >} >/* 送信パラメータの説明: $_POST['qq']---ユーザー QQ $_POST['g_tk'] -- このパラメータを取得するには、送信された投稿アドレスの後に呼び出される公開時刻 g_tk=123456789 を取得する必要があります。 道路ポスト < ;a href="g_tk=123456789" target= "_blank">http://b1.qzone.qq g_tk=123456789 .com/cgi-bin/blognew/blog_add?g_tk=123456789 $_POST['title']---記事のタイトル、空ではありません $_POST['content']---記事のコンテンツ、空ではありません */ header('Content-Type:text/html;charset=gb2312'); set_time_limit(0); 🎜>//ob_end_clean(); 🎜> (); > //Cookie ファイルを取得します。作成は行われず、プログラムを終了します $cookiefile=dirname(__FILE__).'qq_cookie.txt'; $cookiefile)){ echo 'qq_cookie.txt は存在しません。自動的に作成されます。キャプチャした Cookie を入力してください'; file_put_contents( $cookiefile,''); 'プログラム終了'); // 存在します、Cookie を読み取ります else{ $cookie=file_get_contents($cookiefile);//ログイン cookie //$cookie=urlencode( $クッキー); } //echo 'cookie:'.$cookie.''; > //掲載ページ、投稿データ等を構成する重要な情報 //qq 番号 if (emptyempty( $_POST['qq'])||preg_match('/[^0-9]/is',$_POST ['qq']))死ぬ('qq 番号は数字でなければなりません'); > else $qq=$_POST['qq']; / /qq号 >if(emptyempty($_POST['g_tk']) ||preg_match('/[ ^0-9]/is',$_POST['g_tk']))死ぬ ('ポスト重要パラメータ g_tk は有効ではありません。数値でなければなりません。キャプチャされたパケットの値を使用してください'); >$_POST['g_tk'] > $title=emptyempty($_POST ['title'])?死ぬ ('タイトルは空であってはなりません'):$_POST['タイトル'];//記事のタイトル $content=emptyempty( $_POST['content']) ?die('コンテンツは空であってはなりません'):$_POST ['content'];//コンテンツ 🎜> $category='個人日記'; //カテゴリ 'http://b1.qzone.qq. com/cgi-bin/blognew/blog_add?g_tk='.$g_tk;//出版処理ページ $referer='http:///ctc.qzs.qq.com/qzone/ v5/toolpages/fp_gbk.html';//ソース ページ $r1='http://user.qzone.qq.com/'.$qq.'/infocenter';//アクセス元ページの一覧表示 $postdata='uin='.$qq.'&category='.urlencode($category).'&title='.urlencode($title).'&content='.urlencode($content).'&html='.urlencode(''.$content.'< ;/div>').'&tweetflag=0&cb_autograph=1&topflag=0&needfeed=0&g_tk='.$g_tk.'&_fp_refer=http://ctc. qzs.qq.com/qzone/newblog/v5/editor.html?source=1|http://ctc.qzs.qq.com/qzone/newblog/v5/editor.html?source=1.$qq.'/main';//postデータベース //$postdata=urlencode($postdata); //echo $postdata; //発信请求、获取源码 $yuanma=request($fabiao,$ r1、$postdata、$cookie、''); if(strpos($yuanma,'発行表成功')) echo $title.' 発行表成功'; else echo '公開失败:右键查看源码、特定の错误を閲覧できます' .$yuanma; ?> ; 代码仅提供参考,成功率有待大家的验证