English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 기초 강의

PHP 고급 강의

PHP & MySQL

PHP 참조 매뉴얼

PHP fsockopen() 함수 사용법 및 예제

PHP HTTP 참조 매뉴얼

fsockopen() 함수는 네트워크 연결이나 Unix 소켓 연결을 열습니다.

문법

resource fsockopen( string $hostname[, int $port[ -1 [, int & $errno[, string & $errstr[, float $timeout = ini_get("default_socket_timeout")]]])

정의와 사용법

인터넷이나 Unix 도메인 소켓 연결을 열기 위해 사용됩니다.

지정된 호스트(hostname)에 연결된 소켓을 초기화합니다.
PHP가 지원하는 소켓 전송기 타입 목록 소켓 전송기(소켓 트랜스포트) 목록입니다. 또한 stream_get_transports()를 통해 소켓 전송기 지원 타입을 얻을 수 있습니다.
기본적으로 블록 모드로 소켓 연결을 시작합니다. 물론 stream_set_blocking()를 사용하여 비락 모드로 변환할 수 있습니다.
stream_socket_client()는 매우 유사하며, 더 많은 파라미터 설정을 제공합니다. 비락 모드와 콘텍스트 제공 모드를 포함합니다.

반환 값

 fsockopen()은 파일 핸들을 반환하며, 이는 다른 파일 클래스 함수(예: fgets(), fgetss(), fwrite(), fclose(), feof())를 호출할 수 있습니다. 호출이 실패하면 FALSE를 반환합니다.

주의: 호스트(hostname)에 접근할 수 없으면, 경고 수준(E_WARNING)의 오류 메시지를 표시합니다.

파라미터

순번파라미터와 설명
1

hostname

OpenSSL을 설치했다면, 주소에 앞에 접근 프로토콜 ssl:를 추가해야 할 수 있습니다.//또는 tls://를 통해 TCP/IP 프로토콜의 SSL 또는 TLS 클라이언트가 원격 호스트에 연결합니다.

2

port

포트 번호. 이 파라미터에 값을 전달하면-1만약 포트를 사용하지 않는다면, 예를 들어 unix://。

3

errno

connect() 호출 중 발생한 시스템 수준 에러 번호를 저장합니다.

4

errstr

에러 정보는 문자열로 반환됩니다.

5

timeout

 연결의 제한 시간을 설정합니다. 단위는 초입니다. 

온라인 예제

다음 예제를 시도해 보세요

<?php
   $connection = fsockopen("www.w"3codebox.com", 80, $errno, $errstr, 30);
   
   if (!$connection) {
      echo "$errstr ($errno"
      \n";
   } else {
      $out = "GET" / HTTP/1.1\r\n";
      $out .= "Host: www.w"3codebox.com\r\n";
      $out .= "Connection: Close\r\n\r\n";
      
      fwrite($connection, $out);
      
      while (!feof($connection)) {
         echo fgets($connection, 128);
      }
      fclose($connection);
   }
?>

위의 예제를 열어 연결을

PHP HTTP 참조 매뉴얼