ホームページ バックエンド開発 PHPチュートリアル オフサイト コレクションを実装するためのカールの方法とテクニック_PHP チュートリアル

オフサイト コレクションを実装するためのカールの方法とテクニック_PHP チュートリアル

Jul 13, 2016 am 10:39 AM
curl

カールを選んだ理由

curl と file_get_contents について、わかりやすい比較を抜粋します。
file_get_contents は、実際には、file_exists、fopen、fread、fclose などの一連の組み込みファイル操作関数のマージされたバージョンであり、怠け者向けに特別に提供されています。主にローカル ファイルを処理するために使用されますが、怠け者のため、ネットワーク ファイルのサポートも追加されます
curl は、ネットワーク インタラクションに特別に使用されるライブラリであり、さまざまな環境に対処するための多数のカスタム オプションを提供します。安定性は当然 file_get_contents よりも優れています。

使用方法

1.カールサポートを有効にする

PHP 環境のインストール後、curl サポートはデフォルトでは有効になっていないため、php.ini ファイルを変更して、extension=php_curl.dll を見つけ、先頭のコロンを削除して、サービスを再起動する必要があります。

2.curlを使用してデータをキャプチャします

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

//cURLオブジェクトを初期化します
$curl =curl_init()
//クロールする必要があるURLを設定します
curl_setopt($curl, CURLOPT_URL, 'http://www.cmx8.cn');
// ヘッダーを設定します
curl_setopt($curl, CURLOPT_HEADER, 1); 結果を文字列に保存するか画面に出力するように cURL パラメータを設定します。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// cURL を実行し、Web ページをリクエストします
$data =curl_exec($curl)
// URL を閉じるリクエスト
curl_close($curl);

3. 定期的なマッチングによるキーデータの検索

コードをコピーします コードは次のとおりです:
//$dataはcurl_execによって返される値であり、収集されたターゲットコンテンツです
preg_match_all("/
  • (.*?)
  • /",$data, $out, PREG_SET_ORDER);
    foreach($out as $key => $value){
    //ここで $value は配列であり、一致する文字が見つかった整数 文と個別に一致した文字
    echo '一致した文全体: '.$value[0].'
    ';
    echo '一致した単一の文字: '.$value[1].'
    '; }


    ヒント

    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 秒です。

    コードをコピーします コードは次のとおりです:
    curl_setopt($ch, CURLOPT_TIMEOUT, 60) //秒数を設定するだけです
    curl_setopt($ch, CURLOPT_NOSIGNAL, 1); //注意: ミリ秒のタイムアウトを設定する必要があります
    curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200); // ミリ秒単位のタイムアウト。cURL 7.16.2 で追加されました。 PHP 5.2.3 以降で利用可能


    2. 投稿を通じてデータを送信し、Cookie を保持します

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

    //以下は学習と参考のための例です:
    //Curl は DZ7.0 に適したログイン ディスカス プログラムをシミュレートします

    !extension_loaded('curl') && die('カール拡張機能がロードされていません。') ;

    $discuz_url = 'http://www.lxvoip.com';//フォーラムのアドレス
    $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'] = 'lxvoip' = '88888888 ';
    // セキュリティの質問
    $post_fields['answer'] = '';
    //FORMHASH を取得します
    $ch =curl_init($login_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); close($ch);
    preg_match('//i', $contents, $matches);
    if (!empty($matches)) {
    $formhash = $matches[1];
    die('フォーラムハッシュが見つかりません。');

    //POST データCOOKIE を取得
    $cookie_file = dirname(__FILE__) .
    //$cookie_file = tempnam('/tmp');
    curl_setopt($ch, CURLOPT_HEADER, 0); $ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
    curl_exec($ ch);
    curl_close($ch);

    // 表示するためにログインする必要があるページのコンテンツを取得するには、
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

    var_dump($ch); ;






    http://www.bkjia.com/PHPjc/728088.html

    www.bkjia.com

    tru​​e

    http://www.bkjia.com/PHPjc/728088.html

    技術記事

    curl を選択する理由curl と file_get_contents について、わかりやすく比較すると、file_get_contents は、実際には、file_ex などの一連の組み込みファイル操作関数のマージされたバージョンです...

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

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    PythonでCURLリクエストとPythonリクエストの相互変換を実現する方法 PythonでCURLリクエストとPythonリクエストの相互変換を実現する方法 May 03, 2023 pm 12:49 PM

    curl と Pythonrequests は両方とも、HTTP リクエストを送信するための強力なツールです。 curl はターミナルから直接リクエストを送信できるコマンドライン ツールですが、Python のリクエスト ライブラリは、Python コードからリクエストを送信するためのよりプログラム的な方法を提供します。 curl を Pythonrequestscurl コマンドに変換するための基本的な構文は次のとおりです。curl[OPTIONS]URLcurl コマンドを Python リクエストに変換する場合、オプションと URL を Python コードに変換する必要があります。これは、curlPOST コマンドの例です:curl-XPOST https://example.com/api

    Linux での CURL バージョンの更新に関するチュートリアル! Linux での CURL バージョンの更新に関するチュートリアル! Mar 07, 2024 am 08:30 AM

    Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

    最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 Jul 29, 2023 pm 05:07 PM

    最初から最後まで: HTTP リクエストに php 拡張機能 cURL を使用する方法 はじめに: Web 開発では、多くの場合、サードパーティ API または他のリモート サーバーと通信する必要があります。 cURL を使用して HTTP リクエストを行うのは、一般的で強力な方法です。この記事では、PHP を使用して cURL を拡張して HTTP リクエストを実行する方法を紹介し、いくつかの実用的なコード例を示します。 1. 準備 まず、php に cURL 拡張機能がインストールされていることを確認します。コマンドラインで php-m|grepcurl を実行して確認できます。

    PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 Jul 08, 2023 pm 09:13 PM

    PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 最近、PHPは最新バージョンのPHP8.1を正式にリリースし、重要な機能である複数リクエストの同時処理のためのcurlを導入しました。この新機能により、開発者は複数の HTTP リクエストをより効率的かつ柔軟に処理できるようになり、パフォーマンスとユーザー エクスペリエンスが大幅に向上します。以前のバージョンでは、複数のリクエストを処理するには、多くの場合、複数の CURL リソースを作成し、ループを使用してデータをそれぞれ送受信する必要がありました。この方法でも目的は達成できますが、

    PHP Curl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? PHP Curl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? Mar 08, 2024 am 11:36 AM

    PHPCurl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? PHPCurl を使用してネットワーク リクエストを送信すると、Web ページから返される 301 ステータス コードが頻繁に発生します。これは、ページが永続的にリダイレクトされたことを示します。この状況を正しく処理するには、いくつかの特定のオプションと処理ロジックを Curl リクエストに追加する必要があります。以下では、PHPCurl で Web ページの 301 リダイレクトを処理する方法を詳しく紹介し、具体的なコード例を示します。 301 リダイレクトの処理原則 301 リダイレクトとは、サーバーが 30 を返すことを意味します。

    Linuxカールとは何ですか Linuxカールとは何ですか Apr 20, 2023 pm 05:05 PM

    Linux では、curl はサーバーとの間でデータを転送するための非常に実用的なツールです。これは、コマンド ラインで動作する URL ルールを使用するファイル転送ツールです。ファイルのアップロードとダウンロードをサポートし、包括的な転送ツールです。 Curl は、プロキシ アクセス、ユーザー認証、ftp アップロードとダウンロード、HTTP POST、SSL 接続、Cookie サポート、ブレークポイント再開などの非常に便利な機能を多数提供します。

    PHP CURLでCookieを設定する方法 PHP CURLでCookieを設定する方法 Sep 26, 2021 am 09:27 AM

    PHP CURL で Cookie を設定する方法: 1. PHP サンプル ファイルを作成します; 2. "curl_setopt" 関数を通じて cURL 送信オプションを設定します; 3. CURL に Cookie を渡します。

    PHP の致命的なエラーの解決策: 未定義関数curl_setopt() の呼び出し PHP の致命的なエラーの解決策: 未定義関数curl_setopt() の呼び出し Jun 23, 2023 am 08:18 AM

    PHP は、多くの Web サイトで広く使用されているオープンソース スクリプト言語です。ただし、場合によっては、PHPFatalerror:Calltounknownfunctioncurl_setopt() という問題が発生し、Web サイトが正常に動作しなくなる可能性があります。では、この問題の正確な原因は何でしょうか? PHP では、curl_setopt() は非常に重要な関数であり、curl を通じてライブラリを拡張するために使用されます。

    See all articles