検索
ホームページバックエンド開発PHPチュートリアルphpカールプロンプト警告:curl_setopt() [function.curl-setopt]:CURLOPT_FOLLOWLOCATIONをアクティブ化できません...エラー解決策


PHP のcurl 関数を使用すると、警告:curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION は、safe_mode または open_basedir が設定されている場合はアクティブにできません… というメッセージが表示されます。以下に、この問題のトラブルシューティング方法を紹介します。

php で CURLOPT_FOLLOWLOCATION を実行し、php プロンプト エラー メッセージが表示された場合:
警告:curl_setopt() [function.curl-setopt]:safe_mode または open_basedir が設定されている場合、CURLOPT_FOLLOWLOCATION をアクティブ化できません&hellip ;

エラーには、safe_mode と open_basedir という 2 つの重要な点が記載されています。仮想ホストで APPCHE を設定する権限がない場合、サーバー構成を変更しても問題を解決できません。

一般的に。つまり、サーバー設定のsafe_modeはすべてオフになっており、open_basedirを設定して仮想ホストユーザーのPHP実行フォルダーを制限することで、セキュリティのためにユーザーにいくつかの制限がかかります。 したがって、CURLOPT_FOLLOWLOCATION( phpカール関数、ディープクローリングデータ)、301リダイレクトが発生すると、記事に記載されているエラーメッセージが表示されます

関連情報を確認した後、すぐに解決策を見つけました

。具体的な方法は、curl ステートメントを使用します。curl_exec 関数を使用するかどうかを指定します。

curl_exec 関数をカスタマイズします。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

function curlExec(/* Array */$curlOptions='', /* Array */$curlHeaders='', /* Array */$postFields='')
{
  $newUrl = '';
  $maxRedirection = 10;
  do
  {
    if ($maxRedirection<1) die(&#39;Error: reached the limit of redirections&#39;);

    $ch = curl_init();
    if (!empty($curlOptions)) curl_setopt_array($ch, $curlOptions);
    if (!empty($curlHeaders)) curl_setopt($ch, CURLOPT_HTTPHEADER, $curlHeaders);
    if (!empty($postFields))
    {
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
    }
    
    if (!empty($newUrl)) curl_setopt($ch, CURLOPT_URL, $newUrl); // redirect needed
    
    $curlResult = curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($code == 301 || $code == 302 || $code == 303 || $code == 307)
    {
      preg_match(&#39;/Location:(.*?)\n/i&#39;, $curlResult, $matches);
      $newUrl = trim(array_pop($matches));
      curl_close($ch);

      $maxRedirection--;
      continue;
    }
    else // no more redirection
    {
      $code = 0;
      curl_close($ch);
    }
  }
  while($code);
  return $curlResult;
}

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

在使用PHP进行开发的过程中,有时候会遇到“PHPFatalerror:Cannotredeclare”错误,这个错误通常会出现在如下情况:在PHP代码中多次include/require同一个文件。在代码中定义了和已有的函数/类重名的函数/类。这个错误会导致程序无法继续执行,为了解决这个问题,我们需要了解其产生原因和解决方法。产生原

解决PHP报错:语法错误,意外的"T_STRING"符号解决PHP报错:语法错误,意外的"T_STRING"符号Aug 17, 2023 pm 12:31 PM

解决PHP报错:语法错误,意外的"T_STRING"符号在开发或维护PHP项目时,我们常常会遇到各种各样的错误。其中一个常见的错误就是语法错误,特别是出现意外的"T_STRING"符号错误。这种错误通常是由于代码书写不规范或者使用了无效的语法导致的。本文将介绍一些解决这种错误的方法,并给出一些具体的代码示例。首先,我们需要了解一下什么是"T_STRING"符

PHP时区不正确导致的常见问题及解决方法PHP时区不正确导致的常见问题及解决方法Mar 21, 2024 am 09:09 AM

PHP时区不正确可能会导致一些常见问题,例如在处理日期、时间和时区转换时出现错误。在开发过程中,正确设置PHP时区是非常重要的,否则会导致程序运行异常或出现不可预测的错误。本文将介绍PHP时区不正确导致的常见问题及解决方法,同时提供具体的代码示例。问题一:日期、时间显示不正确在PHP中,如果时区设置不正确,可能会导致日期、时间显示不正确的问题。这种问题通常出

解决PHP报错:试图调用非对象的方法解决PHP报错:试图调用非对象的方法Aug 25, 2023 pm 02:06 PM

解决PHP报错:试图调用非对象的方法在PHP开发中,经常会遇到一种常见的报错:试图调用非对象的方法。这个错误通常是由于代码中调用了一个非对象的方法或函数造成的。在本文中,我们将重点介绍如何解决这个问题,并提供一些常见的示例供参考。一、了解报错原因要解决这个错误,首先需要了解报错的原因。在PHP中,对象是通过类实例化而来的,而非对象的方法则是指尚未

PHP 500错误详解:如何应对和修复PHP 500错误详解:如何应对和修复Mar 21, 2024 pm 05:45 PM

PHP500错误详解:如何应对和修复,需要具体代码示例在进行PHP开发过程中,经常会遇到HTTP状态码为500的错误。这种错误通常是服务器端出现了一些问题,导致PHP脚本无法正确执行。本文将对PHP500错误进行详细解析,介绍常见的原因,并提供具体的修复方法和代码示例。1.500错误的常见原因语法错误:PHP代码中存在语法错误是最常见的导致500错误的

PHP Notice: Unknown:的解决方法PHP Notice: Unknown:的解决方法Jun 22, 2023 pm 08:15 PM

PHPNotice:Unknown:的解决方法在PHP开发中,有时会出现“PHPNotice:Unknown:”这样的错误提示。这种错误提示可能会对程序的正常运行产生影响,如果不及时处理,可能会导致严重的后果。本文将介绍这种错误产生的原因以及如何解决。一、错误产生的原因“PHPNotice:Unknown:”错误提示通常是因为PHP运行过程中发生

PHP程序500错误的调试技巧分享PHP程序500错误的调试技巧分享Mar 07, 2024 am 10:57 AM

PHP程序500错误的调试技巧分享随着Web开发的不断发展,PHP作为一种广泛应用的服务器端脚本语言,受到了广泛的关注和应用。然而,在使用PHP进行开发的过程中,我们难免会遇到各种问题,其中一个比较常见且头疼的问题就是“500InternalServerError”,即服务器内部错误。这种错误会导致网站无法正常访问,给开发者带来不便。为了帮助大家更好地

PHP Parse error: parse error in解决方法PHP Parse error: parse error in解决方法Jun 24, 2023 pm 11:43 PM

在使用PHP进行编程的过程中,我们有时会遇到“PHPParseerror:parseerror”的错误提示。这一错误提示通常意味着我们在代码中有一些语法错误,导致PHP无法读取和解析代码。这篇文章将介绍一些解决这一问题的方法。检查代码首先,我们需要仔细检查代码,看看是否有拼写错误、缺少括号、引号、分号、花括号等语法错误。有时候一个简单的语法错误就会导

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

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

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!