ホームページ >バックエンド開発 >PHPチュートリアル >PHPカールはオフサイトコンテンツのサンプルコードを収集します

PHPカールはオフサイトコンテンツのサンプルコードを収集します

WBOY
WBOYオリジナル
2016-07-25 08:54:221181ブラウズ
  1. //cURL オブジェクトを初期化します
  2. $curl =curl_init();
  3. //クロールする必要がある URL を設定します
  4. curl_setopt($curl, CURLOPT_URL, 'http://bbs.it -home.org');
  5. // ヘッダーを設定します
  6. curl_setopt($curl, CURLOPT_HEADER, 1);
  7. // 結果を文字列に保存するか画面に出力するかを尋ねる cURL パラメーターを設定します。
  8. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  9. // cURL を実行し、Web ページをリクエストします
  10. $data =curl_exec($curl);
  11. // URL リクエストを閉じます
  12. curl_close($curl);定期的なマッチングを通じて

//$data は、curl_exec によって返される値であり、収集されたターゲット コンテンツです

preg_match_all("/
  • (.*?)< / li>/",$data, $out, PREG_SET_ORDER);
    foreach($out as $key => $value){
      //ここで $value は配列ですが、文全体と個々の文を一致させて記録します一致する文字
    1. echo '文全体が一致しました: '.$value[0].'
    2. ';
    3. echo '単一の一致: '.$value[1].'
    4. '
    5. }
    6. コードをコピーします
    7. 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';//ログインページのアドレス
    1. $get_url = $discuz_url .'/my.php?item=threads'; //私の投稿

    2. $post_fields = array( ) ;

    3. //次の 2 つの項目は変更する必要はありません
    4. $post_fields['loginfield'] = 'username';
    5. $post_fields['loginsubmit'] = 'true';
    6. $post_fields['username'] = 'jbxue';
    7. $post_fields['password'] = '88888888';
    8. //セキュリティの質問
    9. $post_fields['answer'] = '';
    10. //@todo 確認コード
    11. $post_fields['seccoverify'] = '';

    12. //FORMHASH から取得

    13. $ch =curl_init($login_url); ($ch, CURLOPT_HEADER, 0);
    14. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    15. $contents =curl_close($ch); "s*name ="formhash"s*value="(.*?)"s*/>/i', $contents, $matches);
    16. if(!empty($matches)) {
    17. $formhash = $matches[1 ];
    18. } else {
    19. die('フォーラムハッシュが見つかりません。');

    20. //POST データ、COOKIE を取得

    21. $cookie_file = dirname(__FILE__) 。 '/cookie.txt';
    22. //$cookie_file = tempnam('/tmp');
    23. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    24. curl_setopt($ch, CURLOPT_POST, 1);
    25. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); ($ch ); < /p>
    26. // 閲覧するためにログインする必要があるページのコンテンツを取得するには、

    27. curl_setopt($ch, CURLOPT_HEADER, 0);
    28. curl_setopt($ ch, CURLOPT_COOKIEFILE, $cookie_file);
    29. $contents ($ch); ;p>var_dump($contents );

    30. コードをコピー


    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。