이 글은 주로 PHP 스트림에 대한 기본 지식을 소개합니다. 관심 있는 친구들이 참고하면 좋습니다.
개요
스트림은 주로 파일, 소켓 및 기타 유사한 리소스의 작업 방법을 통합하기 위해 PHP 4.3에 도입된 기능입니다. PHP 4.3은 오랫동안 사용되어 왔지만, 물론 나를 포함하여 많은 프로그래머들이 PHP에서 스트림을 올바르게 사용하지 못하는 것 같습니다. 나는 이전에 php://input과 같은 일부 프로그램에서 스트림을 사용하는 것을 접했지만 이를 정리할 기회가 없었습니다. 오늘은 이 부분의 지식을 정리하겠습니다.
Stream은 PHP에서 제공하는 리소스로 우리가 투명하게 사용할 수 있으며 스트림은 매우 강력한 도구입니다. 프로그램에서 스트림을 적절하게 사용하면 프로그램을 새로운 수준으로 끌어올릴 수 있습니다.
각 스트림은 특수 프로토콜 및 인코딩을 처리하기 위한 추가 코드가 포함된 래퍼를 구현합니다. PHP는 몇 가지 내장 래퍼를 제공하며 사용자 정의 래퍼를 쉽게 생성하고 등록할 수도 있습니다. 래퍼를 변경하고 향상시키기 위해 컨텍스트와 필터를 사용할 수도 있습니다.
스트림에 대한 기본 지식
PHP에서 스트림 형식은
기본 래퍼는 file://입니다. 즉, 파일 시스템에 액세스할 때마다 스트림이 사용됩니다. 예를 들어, 다음 두 가지 방법을 사용하여 파일을 읽을 수 있습니다: readfile('/path/to/somefile.txt') 및 readfile('file:///path/to/somefile.txt') 이 두 가지 방법을 사용하십시오. 파일을 읽으면 동일한 결과를 얻을 수 있습니다.
앞서 언급했듯이 PHP는 내장 래퍼, 프로토콜 및 필터를 제공합니다. 우리 컴퓨터에 어떤 래퍼가 설치되어 있는지 확인하려면 다음 기능을 사용할 수 있습니다.
코드는 다음과 같습니다.
<?php var_dump(stream_get_transports()); var_dump(stream_get_wrappers()); var_dump(stream_get_filters()); ?>
내 로컬 환경 출력 내용은 다음과 같습니다.
코드는 다음과 같습니다.
array (size=8) 0 => string 'tcp' (length=3) 1 => string 'udp' (length=3) 2 => string 'unix' (length=4) 3 => string 'udg' (length=3) 4 => string 'ssl' (length=3) 5 => string 'sslv3' (length=5) 6 => string 'sslv2' (length=5) 7 => string 'tls' (length=3) array (size=12) 0 => string 'https' (length=5) 1 => string 'ftps' (length=4) 2 => string 'compress.zlib' (length=13) 3 => string 'compress.bzip2' (length=14) 4 => string 'php' (length=3) 5 => string 'file' (length=4) 6 => string 'glob' (length=4) 7 => string 'data' (length=4) 8 => string 'http' (length=4) 9 => string 'ftp' (length=3) 10 => string 'phar' (length=4) 11 => string 'zip' (length=3) array (size=12) 0 => string 'zlib.*' (length=6) 1 => string 'bzip2.*' (length=7) 2 => string 'convert.iconv.*' (length=15) 3 => string 'string.rot13' (length=12) 4 => string 'string.toupper' (length=14) 5 => string 'string.tolower' (length=14) 6 => string 'string.strip_tags' (length=17) 7 => string 'convert.*' (length=9) 8 => string 'consumed' (length=8) 9 => string 'dechunk' (length=7) 10 => string 'mcrypt.*' (length=8) 11 => string 'mdecrypt.*' (length=10)
추가로 , 타사 스트림을 사용자 정의하거나 사용할 수 있습니다.
php:// 래퍼
PHP에는 입력/출력(I/O) 스트림에 액세스하기 위한 자체 래퍼가 있습니다. PHP에는 기본 I/O 리소스에 해당하는 기본 php://stdin, php://stdout, php://stderr 래퍼가 있습니다. 읽기 전용 스트림인 php://input 스트림도 있는데 스트림의 내용은 게시물에서 요청한 데이터입니다. 이 스트림은 원격 서비스를 요청하기 위해 게시 요청 본문에 데이터를 넣을 때 특히 유용합니다.
php://input은 가장 일반적으로 사용되는 스트림이므로 다음과 같은 몇 가지 지식 포인트가 있습니다.
1.php://input은 처리되지 않은 POST 데이터를 읽을 수 있습니다. $HTTP_RAW_POST_DATA에 비해 메모리에 대한 부담이 적고 특별한 php.ini 설정이 필요하지 않습니다. enctype=multipart/form-data
2에는 php://input을 사용할 수 없습니다. Content-Type이 application/x-www-form-urlencoded이고 제출 방법이 POST 방식인 경우에만 $_POST 데이터가 php와 동일합니다. ://input 데이터가 "일관적"입니다(따옴표는 형식이 일관되지 않고 내용이 일관됨을 나타냄). 다른 경우에는 일관성이 없습니다.
3.php://input은 GET 데이터를 읽을 수 없습니다. 이는 _GET 데이터가 http 요청의 본문 부분이 아닌 http 요청 헤더(header)의 PATH 필드에 query_path로 기록되기 때문입니다.
Stream Contexts
이 부분은 프로그래밍에서 거의 접한 적이 없어서 제가 연구하기 어렵습니다. 관심이 있으시면 직접 검색해 보시기 바랍니다.
요약
스트림은 일상적인 프로그래밍에서 많이 사용되지 않습니다. xml-rpc를 사용할 때 서버 측에서는 주로 PHP 입력 스트림 입력을 통해 클라이언트 데이터를 얻습니다. 이는 일반적인 시나리오입니다. 해커가 웹사이트에 침입할 때 콘텐츠의 이 부분을 사용할 수도 있습니다.
관련 권장 사항:
스누피 클래스를 사용하여 HTML 파일을 구문 분석하는 방법
위 내용은 PHP 스트림에 대한 기본 지식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

tomodifyDatainAphPessess, startSessionstession_start (), 그런 다음 $ _sessionToset, modify, orremovevariables.

배열은 PHP 세션에 저장할 수 있습니다. 1. 세션을 시작하고 session_start ()를 사용하십시오. 2. 배열을 만들고 $ _session에 저장하십시오. 3. $ _session을 통해 배열을 검색하십시오. 4. 세션 데이터를 최적화하여 성능을 향상시킵니다.

PHP 세션 쓰레기 수집은 만료 된 세션 데이터를 정리하기위한 확률 메커니즘을 통해 트리거됩니다. 1) 구성 파일에서 트리거 확률 및 세션 수명주기를 설정합니다. 2) CRON 작업을 사용하여 고재 응용 프로그램을 최적화 할 수 있습니다. 3) 데이터 손실을 피하기 위해 쓰레기 수집 빈도 및 성능의 균형을 맞춰야합니다.

PHP의 사용자 세션 활동 추적은 세션 관리를 통해 구현됩니다. 1) Session_start ()를 사용하여 세션을 시작하십시오. 2) $ _session 배열을 통해 데이터를 저장하고 액세스하십시오. 3) 세션 _destroy ()를 호출하여 세션을 종료합니다. 세션 추적은 사용자 행동 분석, 보안 모니터링 및 성능 최적화에 사용됩니다.

데이터베이스를 사용하여 PHP 세션 데이터를 저장하면 성능 및 확장 성을 향상시킬 수 있습니다. 1) 세션 데이터를 저장하기 위해 MySQL 구성 : php.ini 또는 php 코드에서 세션 프로세서를 설정하십시오. 2) 사용자 정의 세션 프로세서 구현 : 데이터베이스와 상호 작용하기 위해 열린, 닫기, 읽기, 쓰기 및 기타 기능을 정의합니다. 3) 최적화 및 모범 사례 : 인덱싱, 캐싱, 데이터 압축 및 분산 스토리지를 사용하여 성능을 향상시킵니다.

phpsessionstrackuserdataacrossmultiplepagerequestsususingauniqueIdStoredInAcookie.here'showtomanagetheMeftically : 1) STARTASESSIONSTART_START () andSTAREDATAIN $ _SESSION.2) RegenerATERATESSESSIDIDAFTERLOGINWITHSESSION_RATERATERATES (True) TopreventSES

PHP에서 세션 데이터를 통한 반복은 다음 단계를 통해 달성 할 수 있습니다. 1. Session_start ()를 사용하여 세션을 시작하십시오. 2. $ _session 배열의 모든 키 값 쌍을 통해 Foreach 루프를 통과합니다. 3. 복잡한 데이터 구조를 처리 할 때 is_array () 또는 is_object () 함수를 사용하고 print_r ()를 사용하여 자세한 정보를 출력하십시오. 4. Traversal을 최적화 할 때 페이징을 사용하여 한 번에 많은 양의 데이터를 처리하지 않도록 할 수 있습니다. 이를 통해 실제 프로젝트에서 PHP 세션 데이터를보다 효율적으로 관리하고 사용하는 데 도움이됩니다.

이 세션은 서버 측 상태 관리 메커니즘을 통해 사용자 인증을 인식합니다. 1) 세션 생성 및 고유 ID의 세션 생성, 2) ID는 쿠키를 통해 전달됩니다. 3) ID를 통해 서버 저장 및 세션 데이터에 액세스합니다. 4) 사용자 인증 및 상태 관리가 실현되어 응용 프로그램 보안 및 사용자 경험이 향상됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版
시각적 웹 개발 도구
