ob, 출력 버퍼는 출력 캐시가 아닌 출력 버퍼링의 약어입니다. ob를 올바르게 사용하면 어느 정도 속도에 도움이 될 수 있지만, ob 기능을 무턱대고 추가하면 CPU에 추가 부담만 가중될 뿐입니다. ob의 기본 원리: ob 캐시를 켜면 에코 데이터가 뜹니다. 먼저 ob 캐시에 배치됩니다. 헤더 정보인 경우 프로그램 캐시에 직접 배치됩니다. 페이지가 끝까지 실행되면 ob 캐시된 데이터가 프로그램 캐시에 저장되었다가 차례로 브라우저로 반환됩니다.
ob의 기본 기능에 대해 이야기해 보겠습니다.
1) 브라우저 출력 후 헤더 파일을 보내기 위해 setcookie(), header() 또는 session_start()와 같은 함수를 사용하여 발생하는 오류를 방지합니다. 실제로 이런 종류의 사용법을 덜 자주 사용하고 좋은 코딩 습관을 기르는 것이 더 좋습니다.
2) 일부 얻을 수 없는 함수의 출력을 캡처합니다. 예를 들어 phpinfo()는 많은 HTML을 출력하지만 현재로서는 $info=phpinfo()와 같은 변수를 사용하여 캡처할 수 없습니다. 유용한. 3) gzip 압축, 중국어 간체와 번체 간 변환, 일부 문자열 교체 등 출력 콘텐츠를 처리합니다.
4) 정적 파일 생성은 실제로 전체 페이지의 출력을 캡처한 다음 파일로 저장하는 것입니다. HTML 생성이나 전체 페이지 캐싱에 자주 사용됩니다.
방금 언급한 세 번째 항목에서 언급한 GZIP 압축과 관련하여 많은 사람들이 사용하고 싶어도 실제로 사용하지 않았을 수 있습니다. 실제로 코드를 약간만 수정하면 페이지의 gzip 압축을 얻을 수 있습니다.
ob_start(ob_gzhandler); 要缓存的内容
ob_get_contents
()의 콘텐츠를 압축하고 마지막으로 에코하는 것이었습니다.
ob_start(); //출력 버퍼를 엽니다. 모든 출력 정보는 더 이상 브라우저로 직접 전송되지 않고 출력 버퍼에 저장됩니다.
ob_clean(); //버퍼를 닫지 않고(출력 없음) 내부 버퍼의 내용을 삭제합니다.
ob_end_clean(); //내부 버퍼의 내용을 삭제하고 버퍼를 닫습니다(출력 없음).ob_get_clean(); //내부 버퍼의 내용을 반환하고 버퍼를 닫습니다. ob_get_contents() 및 ob_end_clean()
ob_flush()를 실행하는 것과 동일합니다. //내부 버퍼의 내용을 브라우저로 보내고, 버퍼의 내용을 삭제하고, 버퍼를 닫지 않습니다.
ob_end_flush(); //내부 버퍼의 내용을 브라우저로 보내고 버퍼의 내용을 삭제한 후 버퍼를 닫습니다.
ob_get_flush(); //내부 버퍼의 내용을 반환하고 버퍼를 닫은 다음 버퍼의 내용을 해제합니다. ob_end_flush()와 동일하며 버퍼 내용을 반환합니다.
flush(); //ob_flush에 의해 릴리스된 콘텐츠와 PHP 버퍼에 없는 콘텐츠를 브라우저에 출력합니다. 내부 버퍼의 콘텐츠를 새로 고쳐서 출력합니다.
ob_get_contents(); //출력 없이 버퍼의 내용을 반환합니다.
ob_get_length
(); //내부 버퍼의 길이를 반환합니다. 버퍼가 활성화되지 않은 경우 이 함수는 FALSE를 반환합니다. ob_get_level(); //출력 버퍼링 메커니즘의 중첩 수준을 반환합니다.ob_get_status(); ob_implicit_flush(true)를 연 후 소위 절대 새로 고침은 출력 문(예: echo)이 실행될 때 출력은 플러시()를 호출하거나 출력을 위해 스크립트가 끝날 때까지 기다릴 필요 없이 브라우저로 직접 전송됩니다.
ob_gzhandler //ob_start 콜백 함수, gzip을 사용하여 버퍼 내용을 압축합니다.
위 내용은 ob 시리즈 함수 출력 캐시 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!