ホームページ  >  記事  >  バックエンド開発  >  PHPでジャンプを追跡するためにcurlを使用する方法

PHPでジャンプを追跡するためにcurlを使用する方法

PHPz
PHPzオリジナル
2023-03-20 15:33:322551ブラウズ

PHP はバックエンド開発で広く使用されているプログラミング言語であり、cURL は World Wide Web やその他のアプリケーション サービスへのアクセスを提供する最も重要な拡張機能の 1 つです。 cURL を使用する場合、ジャンプをたどることは非常に便利な機能の 1 つです。この記事では、PHP で cURL を使用してリダイレクトを追跡する方法について説明します。

1. フォロー ジャンプとは

フォロー ジャンプは自動リダイレクトとも呼ばれ、HTTP リクエストのリダイレクト後にクライアントがリダイレクトされるかどうかを指します。手動でリクエストするのではなく、 につながる新しい URL を作成します。 Web アプリケーションでは、さまざまな理由 (サーバーの負荷分散、リダイレクト、ログインなど) でフォロー ジャンプを使用する必要がある場合があります。リクエストでフォロースルーが有効になっていない場合、クライアント アプリケーションは処理に戻ります。この時点で、リダイレクトは手動 (プログラム的に) 処理する必要があります。

2. cURL を使用してジャンプをたどります

cURL は、さまざまな代替ネットワークをサポートするオープン ソースのクライアント、ライブラリ、およびツールセットです。 HTTP リクエストは cURL ライブラリを使用して作成できるため、これを使用してリダイレクト URL を取得したり、すでに発生したリダイレクトを追跡して処理したりできます。

  1. リダイレクトの追跡を有効にする

cURL を使用する場合、デフォルトではリダイレクトは追跡されません。フォロー リダイレクト関数を有効にするには、curl_setopt() 関数を使用し、その 2 番目のパラメーター CURLOPT_FOLLOWLOCATION を渡して設定します。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
  1. リダイレクト URL の取得

以下に示すように、cURL を使用してリダイレクト URL を簡単にキャプチャできます。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
$response = curl_exec($ch);
$redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);

上記のコードでは、CURLOPT_RETURNTRANSFER は次のようになります。 true に設定すると、cURL が応答を直接出力するのではなく、応答を返すようになります。これら 2 つのパラメータ CURLOPT_HEADER と CURLOPT_NOBODY の機能は、リクエスト ヘッダーを処理することです。 curl_getinfo() 関数は、リダイレクトされた URL を取得するための CURLINFO_EFFECTIVE_URL など、cURL リソースに関する多くの情報を提供します。この関数を呼び出すときは、以前に作成した cURL セッションをこの関数で使用する必要があります。

3. 注意事項

cURL のフォローリダイレクト機能を使用する場合は、以下の点に注意する必要があります:

  1. デフォルトでは、 cURL はリダイレクトに従いません。 curl_setopt 関数の CURLOPT_FOLLOWLOCATION パラメータが true に設定されている場合のみ、cURL はリダイレクトに従います。
  2. リダイレクト URL をキャプチャするときは、処理後にセッションを閉じるためにcurl_close() 関数を呼び出す必要があるかどうかなど、いくつかの問題にも注意する必要があります。
  3. ネットワーク環境の違いにより、フォロージャンプ機能が動作しない等の問題が発生する場合がございます。したがって、実際にはこの機能を柔軟に使いこなす必要があります。

4. まとめ

この記事では、多くのWebアプリケーションでよく使われている非常に実用的な技術であるcURLを利用したフォロージャンプ機能を紹介します。プロセス。 cURL の使用は比較的複雑ですが、cURL を注意深く理解して使用することは、Web 開発者の作業に間違いなく役立ちます。

以上がPHPでジャンプを追跡するためにcurlを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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