PHP에서 버퍼를 끄는 방법: 1. PHP 설치 디렉토리를 열고 구성 파일 "php.ini"를 찾아 엽니다. 2. 구성 파일에서 "output_buffering" 항목을 찾아 값을 설정합니다. 항목을 "끄기"로 설정하면 됩니다.
본 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP 버퍼(버퍼)
스크립트 출력 정보는 먼저 버퍼에 저장되고, 버퍼가 가득 차거나 스크립트 실행이 완료된 후 데이터가 다음 단계로 전송됩니다. php.ini 구성 파일에서 output_buffering
설정 항목을 찾을 수 있습니다. 내 기본 구성(Windows/XAMPP v3.2.2)은 4096
On으로 설정하면 버퍼를 사용할 수 있으며 크기 제한이 없습니다.
설정이 꺼지면 버퍼를 사용할 수 없습니다.
정수로 설정하면 버퍼를 사용할 수 있으며 바이트 단위로 설정된 크기를 갖습니다.ini_set은 버퍼 크기를 설정할 수 없습니다. 스크립트 실행 환경을 초기화할 때 완료되었습니다. 버퍼 정의는 cli 모드에서 기본적으로 항상 Off입니다. 그렇다면 버퍼를 닫는 것과 여는 것의 차이점이 무엇인지 궁금합니다. 초기 버퍼 크기는 무엇을 합니까? cli 모드는 기본적으로 꺼져 있습니다. 비즈니스에 필요한 경우 켤 수 있습니까? 캐시를 사용하면 어떤 이점이 있나요?1. 버퍼를 여는 것과 닫는 것의 차이점은 무엇인가요?
코드 검사 통과output_buffering을 4096으로 구성한 경우 코드를 실행합니다2. 초기 버퍼 크기의 역할은 무엇인가요?
테스트 실행을 용이하게 하기 위해 output_buffering을 4096에서 5로 변경코드 실행3. CLI 모드는 기본적으로 꺼져 있습니다. 업무상 필요할 경우 켤 수 있나요?
이 질문은 보완할 수 있습니다. php.ini가 버퍼를 꺼지도록 설정했지만 비즈니스에서 버퍼를 사용해야 하는 경우 구성을 변경해야 합니까? 물론 그렇게 어렵지는 않을 것입니다. 여기에 또 다른 ob 함수인 ob_start(); //출력 버퍼를 엽니다. 모든 출력 정보는 더 이상 브라우저로 직접 전송되지 않고 출력 버퍼에 저장됩니다. . 이제 PHP 버퍼가 임시 데이터 저장 영역의 개념과 유사하다는 것을 알았으니, 다시 TP5 소스 코드를 살펴보겠습니다.먼저 ob_get_level 및 ob_get_clean 함수에 대한 설명을 살펴보세요.
ob_get_level(): 출력 버퍼링 메커니즘의 중첩 수준을 반환합니다.
ob_get_clean(): 현재 버퍼의 내용을 가져오고 현재 출력 버퍼를 삭제합니다.
코드에서 한두 가지를 배울 수도 있습니다. 레벨이 0보다 크면 버퍼의 내용을 가져와서 삭제한 다음 ob_start를 통해 새 버퍼를 엽니다. 댓글에 "재신청"이 설명되어 있습니다.
여기서 소위 중첩(nesting)에 대해 설명합니다. 레벨의 값이 0이 되는 경우와 0이 아닌 경우는 무엇입니까? php.ini 출력_버퍼링 및 출력을 꺼서 결과를 확인하세요. 또한, ob_start를 여러 번, ob_get_level을 여러 번 실행하여 출력 결과를 비교해 보겠습니다.
먼저 두 모델을 살펴보겠습니다
ob_start가 새 버퍼를 여러 번 열면 데이터 구조가 두 번째 유형인 중첩으로 구성됩니다. ob_get_level은 중첩된 수준을 반환합니다.
개인적으로 이해하면 중첩은 Java의 스트리밍 메커니즘과 비교할 수 있습니다. 한 버퍼의 데이터가 다음 버퍼로 출력된 후 해당 데이터에 대해 사용자 정의 작업이 수행될 수 있습니다.
이제 TP5 소스 코드를 보면 아이디어가 더 명확해집니다. 시스템이 버퍼를 초기화하는 경우 크기가 제한될 수 있으므로 먼저 버퍼를 삭제한 후 다시 엽니다. ob_start를 실행하여 열리는 캐시 영역의 크기는 "충분히 크다". 그러나 얼마나 큰지에 대한 구체적인 설명은 없습니다. 아무리 큰 데이터를 써도 끝까지 전송되지 않는다는 것만 알 수 있습니다. the script
4. 캐시가 있으면 어떤 이점이 있나요?
PHP 출력 데이터는 WebServer로 전송됩니다. echo를 한 번 실행하여 전송하면 리소스 소모가 늘어나므로 메모리에 저장하여 균일하게 전송하는 것이 더 효율적입니다.
웹 요청에는 HTTP 헤더가 포함되어 있으며 헤더가 설정되기 전에는 어떤 출력도 있을 수 없습니다. PHP 버퍼는 헤더를 보내기 전에 다양한 데이터를 출력하여 이 작업을 수행합니다. 버퍼는 먼저 헤더 정보를 WebSever로 보낸 다음 데이터 패킷을 균일하게 보냅니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP에서 버퍼를 닫는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!