>  기사  >  백엔드 개발  >  PHP에서 컬이 시간 초과되지 않도록 설정하는 방법은 무엇입니까? 여러 가지 방법에 대한 간략한 분석

PHP에서 컬이 시간 초과되지 않도록 설정하는 방법은 무엇입니까? 여러 가지 방법에 대한 간략한 분석

PHPz
PHPz원래의
2023-03-27 19:03:362347검색

PHP에서 컬은 HTTP 요청을 보내기 위한 강력한 라이브러리입니다. 그러나 기본적으로 컬 요청은 요청이 취소되는 시간 제한을 설정합니다. 이 시간의 기본값은 1초입니다. 그러나 경우에 따라 기본 제한 시간 내에 취소하는 대신 컬 요청을 더 오랜 기간 동안 진행하기를 원할 수도 있습니다. PHP 코드를 통해 컬 요청 시간 초과를 설정하는 방법은 무엇입니까? 다음은 여러 가지 방법입니다.

  1. php.ini 파일을 수정합니다.

php.ini 파일에 액세스할 수 있는 권한이 있는 경우 이 파일의 컬 시간 제한을 수정할 수 있습니다. php.ini 파일에서 다음 두 가지 옵션을 찾으세요:

; Maximum amount of time (in seconds) that is allowed for cURL functions to execute.
; Note: This value should not be set to an excessive amount, as it will negatively
; affect server performance. 
; Default Value: 30
curl_timeout = 30

; The number of seconds to wait while trying to connect.
; Default Value: 60
curl_connect_timeout = 60

여기서 curl_timeout은 컬 요청의 최대 실행 시간이고 curl_connect_timeout은 컬의 연결 시간 초과입니다. 요구. 해당 값을 원하는 시간(초)으로 변경해야 합니다. 수정이 완료되면 Apache 또는 PHP-FPM 서비스를 다시 시작하여 적용하세요. curl_timeout 是 curl 请求的最大执行时间,curl_connect_timeout 是 curl 请求的连接超时时间。你需要将它们的值改为你想要的时间(以秒为单位)。修改完毕后,重启 Apache 或者 PHP-FPM 服务使之生效。

  1. 使用 curl_setopt 函数

如果你没有权限修改 php.ini 文件,可以在 PHP 代码中使用 curl_setopt 函数设置 curl 的超时时间。这个函数用于设置 curl 的选项,其使用方式如下:

bool curl_setopt ( resource $ch , int $option , mixed $value )

其中,$ch 是 curl 的句柄(通常使用 curl_init 函数初始化),$option 是需要设置的选项,$value 是选项的值。针对超时时间,有两个选项可供设置:

CURLOPT_TIMEOUT:curl 请求最大执行时间(以秒为单位);
CURLOPT_CONNECTTIMEOUT:curl 请求连接超时时间(以秒为单位)。

你可以使用如下代码来设置上述选项:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com");
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置 curl 请求最大执行时间为 120 秒(2 分钟)
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); // 设置 curl 请求连接超时时间为 30 秒
$result = curl_exec($ch);
curl_close($ch);

在上面的代码中,我们设置了 curl 请求的最大执行时间为 120 秒,连接超时时间为 30 秒。如果 curl 请求在 120 秒内没有完成或者在 30 秒内没有成功建立连接,请求将被取消。

  1. 在 URL 中添加参数

如果你不想修改 PHP 配置或者使用 curl_setopt 函数,还可以在 URL 中添加参数来设置 curl 请求的超时时间。具体操作如下:

http://example.com/?curl_timeout=120&curl_connect_timeout=30

在上面的 URL 中,我们在请求参数中添加了 curl_timeoutcurl_connect_timeout

    curl_setopt 함수 사용

    php.ini 파일 수정 권한이 없는 경우, 컬_setopt 함수를 사용하여 PHP 코드에서 컬 타임아웃을 설정할 수 있습니다. 이 함수는 컬의 옵션을 설정하는 데 사용됩니다.

    rrreee🎜여기서 $ch는 컬의 핸들(보통 컬_init 함수를 사용하여 초기화됨)이고 $입니다. option은 설정해야 하는 옵션이며, $value는 옵션의 값입니다. 시간 제한을 설정하는 데는 두 가지 옵션이 있습니다. 🎜rrreee🎜다음 코드를 사용하여 위 옵션을 설정할 수 있습니다. 🎜rrreee🎜위 코드에서는 컬 요청의 최대 실행 시간을 120초로 설정하고 연결 시간 제한을 설정했습니다. .은 30초입니다. 컬 요청이 120초 이내에 완료되지 않거나, 30초 이내에 연결이 성공적으로 이루어지지 않으면 요청이 취소됩니다. 🎜
      🎜🎜URL에 매개변수 추가🎜🎜🎜🎜PHP 구성을 수정하거나 컬_setopt 함수를 사용하고 싶지 않은 경우 URL에 매개변수를 추가하여 시간 제한을 설정할 수도 있습니다. 컬 요청. 구체적인 작업은 다음과 같습니다. 🎜rrreee🎜위 URL에서는 요청 매개변수에 curl_timeoutcurl_connect_timeout 매개변수를 추가하여 컬 요청의 시간 초과 기간을 설정했습니다. 컬은 자동으로 이러한 매개변수를 읽고 요청할 때 해당 값을 적용합니다. 이 방법은 상대적으로 간단하지만 단점이 있습니다. URL에 포함된 매개변수가 브라우저나 역방향 프록시 서버에 의해 가로채거나 수정될 수 있습니다. 🎜🎜🎜요약🎜🎜🎜php.ini 파일을 수정하거나, 컬_setopt 함수를 사용하거나, URL에 매개변수를 추가하여 PHP에서 컬 요청에 대한 시간 제한을 설정할 수 있습니다. 컬을 사용할 때 특정 상황에 따라 타임아웃을 합리적으로 설정해야 합니다. 서버 성능에 영향을 주지 않도록 타임아웃을 너무 길게 설정하지 마십시오. 🎜

위 내용은 PHP에서 컬이 시간 초과되지 않도록 설정하는 방법은 무엇입니까? 여러 가지 방법에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.