PHP 스트리밍은 파일, 네트워크 및 데이터 압축 작업을 일반화하기위한 강력한 도구입니다. 그들은 읽거나 쓸 수 있으며 스트림의 어느 곳에서나
가 될 수 있습니다. 각 스트림에는 특정 프로토콜 또는 인코딩을 처리하기위한 래퍼가 있습니다.fseek()
file://
를 만들 수 있습니다. 는 래퍼의 구문에 따라 다릅니다. 기본 래퍼는 fseek()
이므로 파일 시스템에 액세스 할 때마다 스트림을 사용합니다. 예를 들어,
를 작성하고 동일한 결과를 얻을 수 있습니다. 대신
를 사용하면 HTTP 스트림 래퍼를 사용하도록 PHP에 알려줍니다. 앞에서 언급했듯이 PHP는 일부 내장 포장지, 프로토콜 및 필터를 제공합니다. 컴퓨터에 설치된 포장지를 이해하려면 다음을 사용할 수 있습니다.
php : // 래퍼 , 및 랩퍼는 기본 I/O 리소스를 매핑하며, 게시물 요청의 원래 본문이있는 읽기 전용 스트림이기도합니다. 데이터 페이로드를 게시물 요청 본문 내부에 넣는 원격 서비스를 처리 할 때 매우 편리합니다. 빠른 테스트를 위해 Curl을 사용해 봅시다 :
PHP 스크립트에 대한 응답으로 도 있습니다. 를 사용하여 헤더에 액세스하고 다음을 얻을 수 있습니다 : <code class="language-php"><?php
print_r(stream_get_transports());
print_r(stream_get_wrappers());
print_r(stream_get_filters());
?></code>
php://stdin
의 결과는 다음과 같습니다.
php://stdout
php://stderr
배열에서 액세스 할 수 없습니다. 그러나 대신 php://input
PHP 5.1은 임시 데이터를 읽고 쓰기 위해 및 <code>Array
(
[0] => tcp
[1] => udp
[2] => unix
[3] => udg
[4] => ssl
[5] => sslv3
[6] => sslv2
[7] => tls
)
Array
(
[0] => https
[1] => ftps
[2] => compress.zlib
[3] => compress.bzip2
[4] => php
[5] => file
[6] => glob
[7] => data
[8] => http
[9] => ftp
[10] => zip
[11] => phar
)
Array
(
[0] => zlib.*
[1] => bzip2.*
[2] => convert.iconv.*
[3] => string.rot13
[4] => string.toupper
[5] => string.tolower
[6] => string.strip_tags
[7] => convert.*
[8] => consumed
[9] => dechunk
[10] => mcrypt.*
[11] => mdecrypt.*
)</code>
/와 같은 함수를 사용하여 스트림을 열 때 필터를 적용하도록 설계된 메타 래퍼 인 print_r($_POST)
<code class="language-bash">curl -d "Hello World" -d "foo=bar&name=John" http://localhost/dev/streams/php_input.php</code>
흐름 컨텍스트
<code class="language-php">Array
(
[foo] => bar
[name] => John
)</code>
를 사용하여 읽습니다. 우리는 php://memory
php://temp
php://filter
readfile()
결론 file_get_contents()
stream_get_contents()
위 내용은 PHP 마스터 | PHP의 스트림 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!