PHP 요청 인터페이스 시간 초과를 해결하는 방법
【HTTP 액세스】
일반적으로 우리는 주로 컬, 소켓, file_get_contents() 및 기타 방법과 같은 다양한 방법으로 HTTP에 액세스합니다.
상대방 서버가 응답하지 않으면 비극에 빠지게 됩니다. 서버 전체를 죽이기 쉬우므로 http 접속 시 타임아웃 문제도 고려해야 합니다.
[CURL 액세스 HTTP]
CURL은 고성능 및 일부 동시성 지원 기능을 갖춘 HTTP 프로토콜 인터페이스에 액세스하기 위해 일반적으로 사용되며 신뢰할 수 있는 lib 라이브러리입니다.
CURL:
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 일반 2단계 시간 초과:
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ( $ ch , CURLOPT_TIMEOUT, 60); //초 수만 설정하세요
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $define_vars['HTTP_USER_AGENT']);
사용 컬 일반 두 번째 수준 시간 초과:
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl에 대한 밀리초 시간 초과가 필요한 경우 다음을 추가해야 합니다.
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
또는 예:
curl_setopt ($ch, CURLOPT_NOSIGNAL, true); 밀리초 수준 시간 초과 설정을 지원할 수 있습니다.
curl에 대한 밀리초 수준 시간 초과의 예:
<?php if (!isset($_GET['foo'])) { // Client $ch = curl_init('http://example.com/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOSIGNAL, 1); //注意,毫秒超时一定要设置这个 curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200); //超时毫秒,cURL 7.16.2中被加入。从PHP 5.2.3起可使用 $data = curl_exec($ch); $curl_errno = curl_errno($ch); $curl_error = curl_error($ch); curl_close($ch); if ($curl_errno > 0) { echo "cURL Error ($curl_errno): $curl_error\n"; } else { echo "Data received: $data\n"; } } else { // Server sleep(10); echo "Done."; } ?>
기타 팁:
1 경험에 따르면 요약은 다음과 같습니다. cURL 버전 >= libcurl/7.21.0 버전, 밀리초 시간 제한이 확실히 적용됩니다.
2.curl_multi의 밀리초 시간 초과에도 문제가 있습니다. . 단일 액세스는 ms 수준의 시간 제한을 지원하지만 여러 호출이 병렬로 이루어지면 cur_multi가 정확하지 않습니다
[스트림 처리를 통해 HTTP에 액세스]
curl 외에도 fsockopen 또는 파일 작업 기능을 사용하여 HTTP를 수행하는 경우가 많습니다. 따라서 이 부분에 대한 시간 초과 처리도 필요합니다.
추천 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP 요청 인터페이스 시간 초과를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다
