ホームページ >バックエンド開発 >PHPチュートリアル >HP フォーラム php フォーラム収集プログラムはログインをシミュレートし、ページ実装コードをキャプチャします

HP フォーラム php フォーラム収集プログラムはログインをシミュレートし、ページ実装コードをキャプチャします

WBOY
WBOYオリジナル
2016-07-29 08:40:211030ブラウズ

コードをコピーします コードは次のとおりです:


// Wu Yanjun
// 2009-06-27
// コレクション プログラム php
set_time_limit(0);保存ディレクトリ
$ cookie_jar = '/tmp/cookie.tmp';
/*関数----------------------------- --- --------------------------------------------------- --- -----------------------*/
//リクエストデータをシミュレート
function request($url,$postfields,$cookie_jar,$referer) {
$ ch =curl_init();
$options = array(CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_NOBODY => 0,
CURLOPT_PORT => 80,
CURLOPT_POST => 1 、
C URLOPT_POSTFIELDS = > $postfields、
CURLOPT_RETURNTRANSFER =>
CURLOPT_FOLLOWLOCATION => 1、
CURLOPT_COOKIEJAR => gt; $referer
);
curl_setopt_array($ch , $ options);
$code =curl_exec($ch);
return $code;
//投稿リストを取得する
function getThreadsList($code){
preg_match_all('/ < ! --[.|r|n]*? return $author
}
//元の投稿者によって公開されたコンテンツを取得する
function getContents($code){
preg_match('/

/',$code,$contents_tmp);
$contents = preg_replace('/images//','http://bbs.war3) .cn/images /',$contents_tmp[0]);
return $contents;
//投稿タイトルを印刷
function printTitle($title){
echo "

投稿タイトル: < ;/h2> ",strip_tags($title),"

";
}
//投稿作成者を出力
function printAuthor($author){
echo "

投稿者:

",strip_tags($author),"

"; /投稿コンテンツの印刷
function printContents($contents){
echo " gt;

著者によって公開されたコンテンツ:

",$contents,"
gt;
}
//エラー
function printError(){
echo " この投稿は存在しません! ";
}
/*関数がリッスンされました---------- ------ -------------------------------------------- ------ ----------------------------------*/
/*フォーラムにログインしますbegin*/
$url = ' http://bbs.war3.cn/logging.php?action=login';
$postfields='loginfield=username&username=1nject10n& パスワード=xxxxxx&questi Referer=http://bbs.war3. cn/&loginsubmit=submit';
request($url,$postfields,$cookie_jar,'');
/*フォーラムにログインします*/
/*投稿を取得しますリスト (最初のページの投稿) begin*/
$url = 'http://bbs.war3.cn/forumdisplay.php?fid=57';
$code = request($url,'',$cookie_jar, '');
$threadsList = getThreadsList($ code);
/*投稿リストを取得します*/
//投稿シーケンス
$rows = 0;
/*すべての投稿ソースコードを取得するループ*/
foreach ($threadsList として $list){
$url = "http://bbs.war3.cn/viewthread.php?tid=$list";
if(isExits($code)){
$code = request($ url,'',$cookie_jar,'');
$color = $rows%2==0?'#00CCFF':'#FFFF33';
echo "

; th",($rows+1),"投稿 : ";
$author = getAuthor($code);
printAuthor($author);
$title = getTitle($ code);
$contents($code);
echo "

"
else
printError();
エコー「-------- -------------------------------------- ------------ -----------------------------
;br/>";
}
/*キャッチ ソース コードを取得します*/
?>


上記では、ログインをシミュレートし、HP フォーラムのコンテンツを含むページ実装コードをキャプチャするための php フォーラム コレクション プログラムを紹介しています。これが、PHP チュートリアルに興味のある友人に役立つことを願っています。