Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP PHP://

<시간/>

소개

php:// 래퍼를 사용하면 다양한 I/O 스트림에 액세스할 수 있습니다. 여기에는 표준 입력, 출력 및 오류 스트림이 포함됩니다. 인메모리, 디스크 지원 및 필터링된 스트림은 php:// 프로토콜로도 액세스됩니다.

표준 스트림

php://stdin , php://stdout php://stderr 표준 입력 스트림 장치, 표준 출력 스트림 및 PHP 프로세스에 대한 오류 스트림에 대한 직접 액세스를 각각 허용합니다. 사전 정의된 상수 STDIN , STDOUTSTDERR 각각 이러한 스트림을 나타냅니다.

php://입력

php://input HTTP 요청 본문에 포함된 원시 데이터에 대한 읽기 전용 액세스를 허용합니다. $HTTP_POST_RAW-DATA에서도 동일한 데이터를 사용할 수 있습니다. 변수(현재 사용되지 않음). 그러나 php://input은 enctype 속성이 multipart/form-data로 설정된 경우 사용할 수 없습니다.

php://출력

이 래퍼는 인쇄와 유사한 버퍼 메커니즘을 허용하는 쓰기 전용 트리를 나타냅니다. 및 에코 진술.

php://fd

파일 설명자는 이 래퍼를 통해 액세스할 수 있습니다. 표준 스트림 STDIN, STDOUT 및 STDERR에는 파일 설명자 1,2 및 3이 할당됩니다. 다른 모든 스트림에는 증가하는 파일 설명자가 할당됩니다. 따라서 php://fd/5는 파일 설명자 5를 나타냅니다.

php://메모리

데이터를 메모리에 임시로 저장할 수 있는 읽기/쓰기 스트림입니다. php://temp 래퍼도 비슷합니다. 단, 후자의 경우 데이터가 메모리가 아닌 임시 파일에 저장됩니다.

php://필터

이 래퍼를 사용하면 스트림이 열릴 때 스트림에 필터를 적용할 수 있습니다. 필터는 readfile(), file_get_contents() 및 file() 함수에 특히 유용합니다.

예시

다음 예에서 콘솔 입력은 php://stdin 에서 읽습니다. php://stdout으로 표시되는 출력

<?php
$file=fopen("php://stdin","r");
$x=fread($file,10);
echo $x;
$out=fopen("php://stdout","w");
fwrite($out, $x);
fclose($file);
?>

php://input 스트림 래퍼를 사용하면 HTTP 요청에서 원시 데이터를 가져올 수 있습니다. 다음 예에서 HTML 양식은 POST 메소드를 사용하여 PHP 스크립트에 데이터를 게시합니다.

<html>
<body>
<form action="testscript.php" method="POST">
   <input type="text" name="name">
   <input type="text" name="age">
   <input type ="submit" value="submit">
</form>
</body>
</html>

원시 HTTP 데이터를 검색하는 PHP 스크립트는 다음과 같습니다 -

<?php
$json = file_get_contents("php://input");
$data = json_decode($json);
print_r($json);
?>