English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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); } ?>
위의 예제를 열어 연결을