>  기사  >  백엔드 개발  >  PHP 프로토콜에 대한 자세한 설명

PHP 프로토콜에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2017-12-20 19:26:463927검색

오늘날의 WEB 프로그램 개발 기술은 논쟁으로 가득 차 있다는 것을 알고 있지만, 앞으로 WEB 기술이 어떻게 발전하든 WEB 프로그램 품질 검사를 위한 기본 통신 프로토콜은 매우 중요합니다. 오늘은 WEB 애플리케이션의 내부 작동 방식을 소개하겠습니다.

PHP에는 fopen(), copy(), file_exists() 및 filesize()와 같은 파일 시스템 함수와 함께 사용할 수 있는 다양한 내장 URL 스타일 래퍼 프로토콜이 함께 제공됩니다. 이러한 패키징 프로토콜 외에도 stream_wrapper_register()를 통해 사용자 정의 패키징 프로토콜을 등록할 수도 있습니다.

참고: 캡슐화된 프로토콜을 설명하는 데 사용되는 URL 구문은cheme://... 구문만 지원합니다. Scheme:/ 및 Scheme: 구문은 지원되지 않습니다.

php 프로토콜 유형

file:// — 로컬 파일 시스템에 액세스

http:// — HTTP(s) URL에 액세스

ftp:// — FTP URL에 액세스

php:// — 개별 입력/출력 스트림에 액세스(I/O 스트림)

zlib:// — 압축된 스트림

data:// — 데이터(RFC 2397)

glob:// — 일치하는 파일 경로 패턴 찾기

phar :// — PHP 아카이브

ssh2:// — Secure Shell 2

rar:// — RAR

ogg:// — 오디오 스트리밍

expect:// — 대화형 스트리밍 처리

PHP. ini

allow_url_fopen: on 기본적으로 이 옵션을 켜면 URL 형식의 fopen 캡슐화 프로토콜이 활성화되어 URL 개체 파일 등에 대한 액세스가 허용됩니다.

allow_url_include: off는 기본적으로 꺼져 있습니다. 이 옵션이 켜져 있으면 URL 개체 파일 등을 포함할 수 있습니다.

file:// 프로토콜

file:// - 영향을 받지 않고 로컬 파일 시스템에 액세스합니다. byallow_url_fopen 및allow_url_include


Usage

file:// [파일의 절대 경로 및 파일 이름]

   
http://127.0.0.1/code/1.php?file=file:///E:\phpStudy\WWW\code\phpinfo.php



php:// 프로토콜

php:// — 개별 입력에 액세스 /output streams (I/O streams )

allow_url_fopen을 활성화할 필요는 없으며, php://input, php://stdin, php://memory 및 php://temp만 허용_url_include를 활성화해야 합니다.

php://stdin, php://stdout 및 php://stderr

php://stdin, php://stdout 및 php://stderr을 사용하면 해당 입력 또는 출력 스트림에 직접 액세스할 수 있습니다. PHP 프로세스.

php://stdin은 읽기 전용이고, php://stdout 및 php://stderr은 쓰기 전용입니다.

php://stdin

<?php
 while($line = fopen(&#39;php://stdin&#39;,&#39;r&#39;))
 {//open our file pointer to read from stdin
 echo $line."\n";
 echo fgets($line);//读取


<?php
 $fd = fopen(&#39;php://stdout&#39;, &#39;w&#39;);
 if ($fd) {
 echo $fd."\n";
 fwrite($fd, "test");
 fwrite($fd, "\n");
 fclose($fd);
 }
?>
<?php
 $stderr = fopen( &#39;php://stderr&#39;, &#39;w&#39; );
 echo $stderr."\n";
 fwrite($stderr, "uknow" );
 fclose($stderr);
?>

가장 일반적으로 사용되는 의사 프로토콜로, 일반적으로 임의의 파일을 읽는 데 사용할 수 있습니다.

php://filter는 데이터 스트림이 열릴 때 애플리케이션을 필터링하도록 설계된 메타 래퍼입니다. 이는 스트림 콘텐츠를 읽기 전에 추가 필터를 적용할 기회가 없는 readfile(), file() 및 file_get_contents()와 같은 일체형 파일 함수에 유용합니다.


resource=a4e9d082d88e35bf04d33cc1b1dbd17f 이 매개변수는 필수입니다. 필터링하려는 데이터 스트림을 지정합니다.

read=d6dcec333b5b6f545b4a96006cf8e622 이 매개변수는 선택사항입니다. 하나 이상의 필터 이름을 파이프 문자로 구분하여 설정할 수 있습니다.

write=7de79e01b749671974df3f75edb1317d 이 매개변수는 선택사항입니다. 하나 이상의 필터 이름을 파이프 문자로 구분하여 설정할 수 있습니다.

8a98115743ade9be4377c4f682709849 read= 또는 write= 접두사가 붙지 않은 모든 필터 목록은 읽기 또는 쓰기 체인에 적절하게 적용됩니다.

<?php
    include($_GET[&#39;file&#39;])
?>

http://127.0.0.1/code/1.php?file=php://filter/read=convert.base64-encode/resource=./phpinfo.php


이 글을 읽고 믿겠습니다 사례 당신은 방법을 마스터했습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

관련 읽기:

PHP 높은 트래픽 최적화?

PHP 제품 플래시 세일 타이밍 구현(대규모 트래픽 해결을 위한 솔루션)

PHP가 웹사이트의 대규모 트래픽과 높은 동시성을 해결하는 방법

위 내용은 PHP 프로토콜에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.