ホームページ >バックエンド開発 >PHPチュートリアル >HP フォーラム php フォーラム収集プログラムはログインをシミュレートし、ページ実装コードをキャプチャします
コードをコピーします コードは次のとおりです:
// 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('/
$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 チュートリアルに興味のある友人に役立つことを願っています。