[PHP] 스트림(Streams)

Seo Joonsoo·2022년 6월 21일
0

php

목록 보기
12/23

Tistory로 작성된 글을 Velog로 옮기는 중입니다.
원글 : https://paric.tistory.com/787

stream_context_create(?array $options = null, ?array $params = null): resource

사전 설정 에 제공된 모든 옵션을 사용하여 스트림 컨텍스트를 만들고 반환합니다

stream_context_create — 스트림 컨텍스트를 생성합니다.
stream_context_get_default — 기본 스트림 컨텍스트 검색
stream_context_get_options — 스트림/래퍼/컨텍스트에 대한 옵션 검색
stream_context_get_params — 컨텍스트에서 매개변수를 검색합니다.
stream_context_set_default — 기본 스트림 컨텍스트 설정
stream_context_set_option — 스트림/래퍼/컨텍스트에 대한 옵션을 설정합니다.
stream_context_set_params — 스트림/래퍼/컨텍스트에 대한 매개변수 설정


stream_context_set_option

( resource $stream_or_context, string $wrapper, string $option, mixed $value): bool


stream_context_set_option(resource $stream_or_context, array $options): bool

스트림/래퍼/컨텍스트에 대한 옵션을 설정합니다.

스트림 옵션 목록은 컨텍스트 옵션 및 매개변수 를 참조하세요

$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);



스트림 필터


stream_get_filters(): array

실행 중인 시스템에 등록된 필터 목록을 검색합니다.

stream_filter_append — 스트림에 필터 연결
stream_filter_prepend — 스트림에 필터 연결
stream_filter_register — 사용자 정의 스트림 필터 등록
stream_filter_remove — 스트림에서 필터 제거


스트림 Socket

stream_socket_server — 인터넷 또는 Unix 도메인 서버 소켓 생성
stream_socket_client — 인터넷 또는 Unix 도메인 소켓 연결 열기
stream_socket_accept — stream_socket_server에 의해 생성된 소켓에 대한 연결 수락
stream_socket_enable_crypto — 이미 연결된 소켓에서 암호화 켜기/끄기
stream_socket_get_name — 로컬 또는 원격 소켓의 이름 검색
stream_socket_pair — 연결되고 구별할 수 없는 소켓 스트림 쌍을 생성합니다.
stream_socket_recvfrom — 연결 여부에 관계없이 소켓에서 데이터 수신
stream_socket_sendto — 연결 여부에 관계없이 소켓에 메시지를 보냅니다.
stream_socket_shutdown — 전이중 연결 종료


예제 #1 TCP 서버 소켓 사용

$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);

if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}

예제 #2 UDP 서버 소켓 사용

$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    die("$errstr ($errno)");
}
do {
    $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
    echo "$peer\n";
    stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);
예제 #3. stream_socket_client() TCP 예제

$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}

예제 #3. stream_socket_client() UDP 연결 예제

localhost의 UDP 서비스 "daytime"(포트 13)에서 날짜와 시간을 검색합니다.

$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}





참고 사항

php_user_filter — php_user_filter 클래스

  • php_user_filter::filter — 필터를 적용할 때 호출됩니다.
  • php_user_filter::onClose — 필터를 닫을 때 호출됩니다.
  • php_user_filter::onCreate — 필터를 생성할 때 호출됩니다.

streamWrapper — streamWrapper 클래스

  • streamWrapper::__construct — 새 스트림 래퍼를 생성합니다.
  • streamWrapper::__destruct — 기존 스트림 래퍼를 파괴합니다.
  • streamWrapper::dir_closedir — 디렉토리 핸들 닫기
  • streamWrapper::dir_opendir — 디렉토리 핸들 열기
  • streamWrapper::dir_readdir — 디렉토리 핸들에서 항목 읽기
  • streamWrapper::dir_rewinddir — 디렉토리 핸들 되감기
  • streamWrapper::mkdir — 디렉토리 생성
  • streamWrapper::rename — 파일 또는 디렉토리의 이름을 바꿉니다.
  • streamWrapper::rmdir — 디렉토리를 제거합니다.
  • streamWrapper::stream_cast — 기본 리소스 검색
  • streamWrapper::stream_close — 리소스 닫기
  • streamWrapper::stream_eof — 파일 포인터에서 파일 끝 테스트
  • streamWrapper::stream_flush — 출력을 플러시합니다.
  • streamWrapper::stream_lock — 권고 파일 잠금
  • streamWrapper::stream_metadata — 스트림 메타데이터 변경
  • streamWrapper::stream_open — 파일 또는 URL을 엽니 다.
  • streamWrapper::stream_read — 스트림에서 읽기
  • streamWrapper::stream_seek — 스트림의 특정 위치를 찾습니다.
  • streamWrapper::stream_set_option — 스트림 옵션 변경
  • streamWrapper::stream_stat — 파일 리소스에 대한 정보 검색
  • streamWrapper::stream_tell — 스트림의 현재 위치 검색
  • streamWrapper::stream_truncate — 스트림 자르기
  • streamWrapper::stream_write — 스트림에 쓰기
  • streamWrapper::unlink — 파일 삭제
  • streamWrapper::url_stat — 파일에 대한 정보 검색

스트림 함수

  • stream_bucket_append — 여단에 버킷 추가
  • stream_bucket_make_writeable — 여단에서 작업할 버킷 객체를 반환합니다.
  • stream_bucket_new — 현재 스트림에서 사용할 새 버킷 생성
  • stream_bucket_prepend — 여단 앞에 버킷 추가
  • stream_context_create — 스트림 컨텍스트를 생성합니다.
  • stream_context_get_default — 기본 스트림 컨텍스트 검색
  • stream_context_get_options — 스트림/래퍼/컨텍스트에 대한 옵션 검색
  • stream_context_get_params — 컨텍스트에서 매개변수를 검색합니다.
  • stream_context_set_default — 기본 스트림 컨텍스트 설정
  • stream_context_set_option — 스트림/래퍼/컨텍스트에 대한 옵션을 설정합니다.
  • stream_context_set_params — 스트림/래퍼/컨텍스트에 대한 매개변수 설정
  • stream_copy_to_stream — 한 스트림에서 다른 스트림으로 데이터를 복사합니다.
  • stream_filter_append — 스트림에 필터 연결
  • stream_filter_prepend — 스트림에 필터 연결
  • stream_filter_register — 사용자 정의 스트림 필터 등록
  • stream_filter_remove — 스트림에서 필터 제거
  • stream_get_contents — 스트림의 나머지 부분을 문자열로 읽습니다.
  • stream_get_filters — 등록된 필터 목록 검색
  • stream_get_line — 스트림 리소스에서 지정된 구분 기호까지 줄을 가져옵니다.
  • stream_get_meta_data — 스트림/파일 포인터에서 헤더/메타 데이터 검색
  • stream_get_transports — 등록된 소켓 전송 목록 검색
  • stream_get_wrappers — 등록된 스트림 목록 검색
  • stream_is_local — 스트림이 로컬 스트림인지 확인
  • stream_isatty — 스트림이 TTY인지 확인
  • stream_notification_callback — 알림 컨텍스트 매개변수에 대한 콜백 함수
  • stream_register_wrapper — stream_wrapper_register의 별칭
  • stream_resolve_include_path — 포함 경로에 대해 파일 이름 확인
  • stream_select — 시간 제한이 초 및 마이크로초로 지정된 지정된 스트림 배열에 대해 select() 시스템 호출과 동일한 것을 실행합니다.
  • stream_set_blocking — 스트림에서 차단/비차단 모드 설정
  • stream_set_chunk_size — 스트림 청크 크기 설정
  • stream_set_read_buffer — 주어진 스트림에서 읽기 파일 버퍼링 설정
  • stream_set_timeout — 스트림의 시간 초과 기간 설정
  • stream_set_write_buffer — 주어진 스트림에서 쓰기 파일 버퍼링을 설정합니다.
  • stream_socket_accept — stream_socket_server에 의해 생성된 소켓에 대한 연결 수락
  • stream_socket_client — 인터넷 또는 Unix 도메인 소켓 연결 열기
  • stream_socket_enable_crypto — 이미 연결된 소켓에서 암호화 켜기/끄기
  • stream_socket_get_name — 로컬 또는 원격 소켓의 이름 검색
  • stream_socket_pair — 연결되고 구별할 수 없는 소켓 스트림 쌍을 생성합니다.
  • stream_socket_recvfrom — 연결 여부에 관계없이 소켓에서 데이터 수신
  • stream_socket_sendto — 연결 여부에 관계없이 소켓에 메시지를 보냅니다.
  • stream_socket_server — 인터넷 또는 Unix 도메인 서버 소켓 생성
  • stream_socket_shutdown — 전이중 연결 종료
  • stream_supports_lock — 스트림이 잠금을 지원하는지 여부를 알려줍니다.
  • stream_wrapper_register — PHP 클래스로 구현된 URL 래퍼 등록
  • stream_wrapper_restore — 이전에 등록되지 않은 내장 래퍼를 복원합니다.
  • stream_wrapper_unregister — URL 래퍼 등록 취소
profile
여러분들 삶에 한 획을 더하고 싶습니다.

0개의 댓글