PHP ob 캐시 소개 및 ob 기능에 대한 자세한 설명
ob 캐시 소개
ob은 출력 버퍼링, 출력 버퍼의 약자로, 버퍼는 php.ini의 output_buffering 변수를 통해 제어됩니다. 기본값은 off이며 버퍼를 열려면 on으로 설정할 수 있습니다. 버퍼를 호출한 후, 프로그램에서 ob 함수를 사용하지 않더라도 코드에서는 실제로 버퍼를 사용합니다. 또한 php.ini의 output_buffering 설정과 상관없이 cli 모드의 php는 기본적으로 항상 꺼져 있습니다. 왜 버퍼인가? 쉽게 말하면 고속 CPU가 자체 데이터를 일찍 처리해 회선을 통해 사용자에게 전달하고 싶은데 회선이 너무 좁아 한꺼번에 전송할 수 없다는 것이다. 버퍼가 도입되면 CPU는 생성된 데이터를 버퍼에 신속하게 넣은 다음 시원한 곳에서 휴식할 수 있습니다. 버퍼는 명령에 따라 적시에 데이터를 출력합니다. 이는 고속 CPU와 저속 I/O 장치 간의 모순을 효과적으로 해결합니다.
ob의 기본 원리: ob 캐시가 켜져 있으면 에코 데이터가 먼저 ob 캐시에 배치됩니다. 헤더 정보인 경우 프로그램 캐시에 직접 배치됩니다. 페이지가 끝까지 실행되면 ob 캐시된 데이터가 프로그램 캐시에 저장되었다가 차례로 브라우저로 반환됩니다.
ob의 기본 기능:
1) 브라우저에서 오류가 출력된 후 헤더 파일을 전송하기 위해 setcookie(), header() 또는 session_start() 사용을 방지합니다. 기능으로 인해 발생합니다. 사실 이런 종류의 사용법은 덜 자주 사용하고 좋은 코딩 습관을 기르는 것이 더 좋습니다.
2) 일부 얻을 수 없는 함수의 출력을 캡처합니다. 예를 들어 phpinfo()는 많은 HTML을 출력하지만 현재로서는 $info=phpinfo();와 같은 변수를 사용하여 캡처할 수 없습니다. 유용할 것입니다.
3) gzip 압축, 중국어 간체와 번체 간 변환, 일부 문자열 교체 등 출력 콘텐츠를 처리합니다.
4) 정적 파일 생성은 실제로 전체 페이지의 출력을 캡처한 다음 파일로 저장하는 것입니다. HTML 생성이나 전체 페이지 캐싱에 자주 사용됩니다.
ob 관련 기능 상세 설명
1. Flush: 버퍼의 내용을 새로 고쳐서 출력합니다.
함수 형식:
flush()
설명: 이 함수는 자주 사용되며 매우 효율적입니다.
2. ob_start: 출력 버퍼 열기
함수 형식:
void ob_start(void)
설명: 버퍼가 활성화되면 PHP 프로그램의 파일이 아닌 모든 헤더 정보가 전송되지 않습니다. 내부 버퍼에 저장됩니다. 버퍼의 내용을 출력하려면 ob_end_flush() 또는 플러시()를 사용하여 버퍼의 내용을 출력할 수 있습니다.
3. ob_get_contents: 내부 버퍼의 내용을 반환합니다.
사용법:
string ob_get_contents(void)
설명: 이 함수는 현재 버퍼의 콘텐츠를 반환합니다. 출력 버퍼가 활성화되지 않은 경우 FALSE를 반환합니다.
4. ob_get_length: 내부 버퍼의 길이를 반환합니다.
사용법:
int ob_get_length(void)
설명: 이 함수는 출력 버퍼가 활성화되지 않은 경우 ob_get_contents와 동일하게 현재 버퍼의 길이를 반환합니다. 그런 다음 FALSE를 반환합니다.
5. ob_end_flush: 내부 버퍼의 내용을 브라우저로 보내고 출력 버퍼를 닫습니다.
사용법:
void ob_end_flush(void)
설명: 이 함수는 출력 버퍼(있는 경우)의 내용을 보냅니다.
6. ob_end_clean: 내부 버퍼의 내용을 삭제하고 내부 버퍼를 닫습니다.
사용법:
void ob_end_clean(void)
설명: 이 함수는 내부 버퍼의 내용을 출력하지 않고 삭제합니다!
7. ob_implicit_flush: 절대 새로 고침 켜기 또는 끄기
사용법:
void ob_implicit_flush ([int flag])
참고: Perl을 사용해 본 사람이라면 누구나 $|=x의 의미를 알 것입니다. , ob_implicit_flush 함수는 그것과 동일합니다. 기본값은 버퍼를 닫는 것입니다. 절대 출력을 켠 후에는 각 스크립트 출력이 브라우저로 직접 전송되며, 플러시()
<를 호출할 필요가 없습니다. 🎜>
플러시 함수의 예제 코드는 다음과 같습니다.
<?php for($i = 1; $i <= 300; $i++ ) print(" "); // 这一句话非常关键,cache的结构使得它的内容只有达到一定的大小才能从浏览器里输出换言之,如果cache的内容不达到一定的大小,它是不会在程序执行完毕前输出的。经 // 过测试,发现这个大小的底限是256个字符长。这意味着cache以后接收的内容都会源源不断的被发送出去。 For($j = 1; $j <= 20; $j++) { echo $j.""; flush(); //这一部会使cache新增的内容被挤出去,显示到浏览器上 sleep(1); //让程序"睡"一秒钟,会让你把效果看得更清楚 } ?>
browser 🎜>.ob 시리즈 기능에 대한 예시 코드:
예를 들어, 브라우저의 설정 정보를 사용할 수 있습니다. 그러나 이 정보는 클라이언트에 따라 다를 수 있습니다. phpinfo() 함수의 출력을 저장하려면 어떻게 해야 합니까? 버퍼 컨트롤이 없었기 전에는 전혀 방법이 없었다고 할 수 있지만, 버퍼 컨트롤을 이용하면 쉽게 해결할 수 있습니다.
<?php ob_start(); //打开缓冲区 phpinfo(); //使用phpinfo函数 $info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info $file=fopen(\'info.txt\',\'w\'); //打开文件info.txt fwrite($file,$info); //写入信息到info.txt fclose($file); //关闭文件info.txt ?>
정적 템플릿 출력 예제 코드 정보:
<?php ob_start();//打开缓冲区 //php页面的全部输出 $content = ob_get_contents();//取得php页面输出的全部内容 $fp = fopen("output00001.html", "w"); //创建一个文件,并打开,准备写入 fwrite($fp, $content); //把php页面的内容全部写入output00001.html,然后…… fclose($fp); ?>
php.cn Dugu Jiujian (4) - PHP 비디오 튜토리얼
"2. 초급부터 숙달까지 PHP 프로그래밍에 대한 전체 튜토리얼 세트
위 내용은 PHP ob 캐시 소개 및 ob 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

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

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.
