-
- //cURL オブジェクトを初期化します
- $curl =curl_init();
- //クロールする必要がある URL を設定します
- curl_setopt($curl, CURLOPT_URL, 'http://bbs.it -home.org');
- // ヘッダーを設定します
- curl_setopt($curl, CURLOPT_HEADER, 1);
- // 結果を文字列に保存するか画面に出力するかを尋ねる cURL パラメーターを設定します。
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- // cURL を実行し、Web ページをリクエストします
- $data =curl_exec($curl);
- // URL リクエストを閉じます
- curl_close($curl);定期的なマッチングを通じて
//$data は、curl_exec によって返される値であり、収集されたターゲット コンテンツです preg_match_all("/ (.*?)< / li>/",$data, $out, PREG_SET_ORDER); foreach($out as $key => $value){ //ここで $value は配列ですが、文全体と個々の文を一致させて記録します一致する文字 - echo '文全体が一致しました: '.$value[0].'
- ';
- echo '単一の一致: '.$value[1].'
- '
- }
-
-
- コードをコピーします
-
- PHP カールのヒント
1. タイムアウト関連の設定
一部のタイムアウト設定は、curl_setopt($ch, opt) を通じて設定できます。主に次のようなものがあります。
CURLOPT_TIMEOUT は、cURL の実行が許可される最大秒数を設定します。
CURLOPT_TIMEOUT_MS は、cURL の実行が許可される最大ミリ秒数を設定します。 (cURL 7.16.2 で追加されました。PHP 5.2.3 以降で利用可能です。)
CURLOPT_CONNECTTIMEOUT 接続を開始するまでの待機時間。0 に設定すると、無期限に待機します。
CURLOPT_CONNECTTIMEOUT_MS 接続試行を待機する時間 (ミリ秒)。 0 に設定すると、無限に待機します。 cURL 7.16.2 で追加されました。 PHP 5.2.3 以降で利用可能です。
CURLOPT_DNS_CACHE_TIMEOUT は、DNS 情報をメモリに保存する時間を設定します。デフォルトは 120 秒です。
2. 投稿を通じてデータを送信し、Cookie を保持する
//DZ7.0に適したCurl模擬ログインdiscuzプログラム
!extension_loaded('curl') && die('Theカール拡張機能が読み込まれていません。'); $discuz_url = 'http://bbs.it-home.org';//フォーラムのアドレス $login_url = $discuz_url .'/logging .php?action=login';//ログインページのアドレス- $get_url = $discuz_url .'/my.php?item=threads'; //私の投稿
$post_fields = array( ) ;
- //次の 2 つの項目は変更する必要はありません
- $post_fields['loginfield'] = 'username';
- $post_fields['loginsubmit'] = 'true';
- $post_fields['username'] = 'jbxue';
- $post_fields['password'] = '88888888';
- //セキュリティの質問
- $post_fields['answer'] = '';
- //@todo 確認コード
- $post_fields['seccoverify'] = '';
//FORMHASH から取得
- $ch =curl_init($login_url); ($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $contents =curl_close($ch); "s*name ="formhash"s*value="(.*?)"s*/>/i', $contents, $matches);
- if(!empty($matches)) {
- $formhash = $matches[1 ];
- } else {
- die('フォーラムハッシュが見つかりません。');
//POST データ、COOKIE を取得
- $cookie_file = dirname(__FILE__) 。 '/cookie.txt';
- //$cookie_file = tempnam('/tmp');
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); ($ch ); < /p>
// 閲覧するためにログインする必要があるページのコンテンツを取得するには、
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ ch, CURLOPT_COOKIEFILE, $cookie_file);
- $contents ($ch); ;p>var_dump($contents );
-
-
-
- コードをコピー
-
-
-
-
-
|