タイトル: PHP Curl は Web ページ上の 301 ジャンプをどのように処理しますか?
Web クローリングまたはデータ スクレイピングのプロセスでは、Web ページが要求されたときに 301 リダイレクトを返す状況によく遭遇します。現時点では、ターゲット Web ページのコンテンツを正しく取得できるように、PHP Curl を使用してこの状況に対処する必要があります。次の例では、PHP Curl を使用して Web ページへの 301 リダイレクトを処理する方法を示します。見てみましょう。
<?php // 目标网页的URL $url = 'https://example.com'; // 初始化Curl $ch = curl_init(); // 设置Curl选项 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 开启自动跳转 // 执行Curl请求 $response = curl_exec($ch); // 检查是否发生301跳转 if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 301) { // 获取重定向后的URL $redirectUrl = curl_getinfo($ch, CURLINFO_REDIRECT_URL); // 重新请求重定向后的URL curl_setopt($ch, CURLOPT_URL, $redirectUrl); $response = curl_exec($ch); } // 关闭Curl curl_close($ch); // 输出获取到的页面内容 echo $response; ?>
上の例では、まずターゲット Web ページの URL を定義し、Curl セッションを初期化します。次に、301 リダイレクトを追跡するオプションを true に設定するなど、いくつかの Curl オプションを設定します。次に、Curl リクエストを実行して Web ページのコンテンツを取得します。
curl_getinfo 関数を使用して、要求された HTTP ステータス コードが 301 であるかどうかを確認します。301 リダイレクトの場合は、リダイレクトされた URL を取得し、Curl を再度使用してリダイレクトされた URL をリクエストし、最終コンテンツを取得します。最後に、Curl セッションを閉じて、取得したページのコンテンツを出力します。
上記の例を通じて、Web ページの 301 ジャンプを正常に処理し、PHP Curl を使用するときにターゲット Web ページのコンテンツを正しく取得できることを確認できます。お役に立てば幸いです!
以上がPHP Curl は Web ページ上の 301 リダイレクトをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。