PHP 입력 및 출력 스트림은 php://를 통해 액세스되며, 이를 통해 PHP의 입력 및 출력 스트림, 표준 입력 및 출력, 오류 설명자, 메모리의 임시 파일 스트림, 디스크 백업 및 기타 읽기 필터 작업에 액세스할 수 있습니다. 파일 리소스에 쓰기 위한 것입니다.
php://stdin, php://stdout 및 php://stderr
php://stdin, php://stdout 및 php://stderr을 사용하면 PHP 프로세스의 해당 입력 또는 출력 스트림에 액세스할 수 있습니다.
php://input
php://input은 요청된 원시 데이터에 대한 액세스를 제공하는 읽기 전용 스트림입니다. POST 요청의 경우 $HTTP_RAW_POST_DATA(네이티브 포스트 데이터) 대신 php://input을 사용하는 것이 가장 좋습니다. 이는 특정 php.ini 명령에 의존하지 않고 메모리를 덜 소모하기 때문입니다. 예:
<form action="" method="post"> <input type="text" name="test" > <input type="submit" name="" /> </form> <?php echo file_get_contents("php://input"); ?>
결과:
php://output
php://output은 print 및 echo와 동일한 방식으로 출력 버퍼에 쓸 수 있는 쓰기 전용 데이터 스트림입니다.
php://fd
php://fd를 사용하면 지정된 파일 설명자에 직접 액세스할 수 있습니다. 예를 들어, php://fd/3은 파일 설명자 3을 나타냅니다.
php://memory 및 php://temp
php://memory 및 php://temp는 임시 데이터를 읽고 쓸 수 있는 데이터 스트림용 파일 형식의 래퍼입니다. 둘 사이의 유일한 차이점은 php://memory는 항상 데이터를 메모리에 저장하는 반면, php://temp는 메모리 양이 미리 정의된 제한(기본값은 2MB)에 도달한 후 임시 파일에 저장한다는 것입니다. 임시 파일 위치는 sys_get_temp_dir()과 동일한 방식으로 결정됩니다.
php://filter
php://filter는 데이터 스트림이 열릴 때 애플리케이션을 필터링하도록 설계된 메타 래퍼입니다. 이는 스트림 내용을 읽기 전에 추가 필터를 적용할 기회가 없는 readfile(), file() 및 file_get_contents()와 같은 일체형 파일 함수에 유용합니다. 매개변수는 다음과 같습니다.
아래 예:
<?php /* 这会以大写字母输出 www.jb51.net 的全部内容 */ readfile("php://filter/read=string.toupper/resource=http://www.jb51.net"); ?>